Avatar billede hejhejhej Nybegynder
13. februar 2003 - 21:16 Der er 3 kommentarer og
1 løsning

Hvordan tjekkes om fil er tom ved læsning?

Jeg skal læse samtlige linier fra en fil. Men hvordan tjekker jeg om filen er tom?
Min kode til at læse linier:
import java.io.BufferedReader;
import java.io.FileReader;
import java.io.IOException;

public class FilLæser
{
    public static void main(String args[])
    {
        BufferedReader in;
        String line;
        try
        {
            in = new BufferedReader(new FileReader("data.txt"));
            while ((line = in.readLine()) != null)
            {
                System.out.println("Læst linie = " + line);
            }
        }
        catch (IOException e)
        {
            e.printStackTrace();  //To change body of catch statement use Options | File Templates.
        }
    }
}
Avatar billede erikjacobsen Ekspert
13. februar 2003 - 21:19 #1
Du kan vende den sådan her (ca. og utestet)

        in = new BufferedReader(new FileReader("data.txt"));
        if ((line = in.readLine()) != null) {
          do  {
            System.out.println("Læst linie = " + line);
          } while ((line = in.readLine()) != null);
        } else {
          // tom
        }
Avatar billede arne_v Ekspert
13. februar 2003 - 21:21 #2
Hvad med:

import java.io.BufferedReader;
import java.io.FileReader;
import java.io.IOException;

public class FilLæser
{
    public static void main(String args[])
    {
        BufferedReader in;
        String line;
        try
        {
            in = new BufferedReader(new FileReader("data.txt"));
            int nb = 0;
            while ((line = in.readLine()) != null)
            {
                nb += line.length();
                System.out.println("Læst linie = " + line);
            }
            if(nb == 0)
            {
                System.out.println("empty file");
            }
        }
        catch (IOException e)
        {
            e.printStackTrace
        }
    }
}
Avatar billede soreno Praktikant
13. februar 2003 - 21:24 #3
Det kan også gøres sådan:

import java.io.BufferedReader;
import java.io.FileReader;
import java.io.IOException;

public class FilLæser
{
    public static void main(String args[])
    {
        BufferedReader in;
        File file = new File("data.txt");
        String line;
        try
        {
            in = new BufferedReader(new FileReader(file));
            if(file.length() == 0)
            {
                  System.out.println("Hov! - du kan ikke vise indholdet af en tom fil..");
            }

            while ((line = in.readLine()) != null)
            {
                System.out.println("Læst linie = " + line);
            }
        }
        catch (IOException e)
        {
            e.printStackTrace();  //To change body of catch statement use Options | File Templates.
        }
    }
}
Avatar billede hejhejhej Nybegynder
14. februar 2003 - 11:30 #4
det virker
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester