webForumDet fria alternativet

FileWriter (newbie)

Java

4 svar · 316 visningar · startad av LAMP

Medlem sedan mars 2002777 inlägg
Frågan#1

Om jag vill skriva/läsa till en fil med FileWriter / FileReader, då vill man helst kontrollera att aktuell fil finns. Vad använder man för metod då?

Finns det något typ FileExcist, hittar inget i documentationen :(

Finns inte filen får jag undantag.

import java.io.*;

public class PhoneBook {

       public static void main(String[] arguments) {

              try {

                  FileReader menuFile = new FileReader("menu.txt");
                  BufferedReader bf = new BufferedReader(menuFile);

                  boolean eof = false;
                  while (!eof) {

                    String line = bf.readLine();

                    if (line == null)
                    eof = true;

                  else

                  System.out.println(line);

                  }

                  bf.close();

              }   catch (IOException e) {

                   System.out.println("Fel inträffade " + e.toString());

              }

       }

}
Medlem sedan mars 2002777 inlägg
#2

Är det lämpligt att göra något i stil med:

public static void main(String[] arguments) throws IOException {
	
File inputMyFile = new File("menu.txt");

}
Medlem sedan juni 200010 432 inlägg
#3

Smidigast är väl att lägga in filhanteringarna i egna metoder...

public void myFileReader()throws IOException{
    File inputMyFile = new File("menu.txt");
    ....
    ....
}

public static void main(String[] arguments) {
try{	
  myFileReader();
  }
catch(IOException e){//fånga och gör nåt... tex skriv ut ett felmeddelande }
}
Medlem sedan mars 2002777 inlägg
#4

Greit PeW! :D

Medlem sedan mars 20007 896 inlägg
#5

Det undantag som kastas om filen inte finns när man ska läsa den är väl FileNotFoundException, om jag minns rätt. Det är smidigare att kasta den om filen inte hittas, och kasta IOException om det är nån annan vajsing med läsningen. Det blir lättare att hålla reda på vad som händer i programmet då. :)

Du kan fortfarande hålla dig till en egen metod;

public void myFileReader () throws IOException, FileNotFoundException {
     ...
}
public void main ( String[] args ) {
     try {
           myFileReader ();
     }
     catch ( IOException e ) {
           // Filen hittades, men kunde inte läsas av någon anledning
     }
     catch ( FileNotFoundException e ) {
           // Filen hittades inte
     }
}

Hm, såg nu att FileNotFoundException endast kastades från FileInputStream, FileOutputStream och RandomAccessFile. Så i så fall får du skriva om din metod som läser in filen... :l

267 ms totalt · 3 externa anrop · v20260731065814-full.767b4345
130 ms — deklarationer (db)
0 ms — hämta statistik (cache)
134 ms — hämta tråd, inlägg och bilagor (db)