LAMPMedlem sedan mars 2002729 inlägg
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());
}
}
}
LAMPMedlem sedan mars 2002729 inlägg
Ä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");
}
PeWMedlem sedan juni 20006 839 inlägg
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 }
}
LAMPMedlem sedan mars 2002729 inlägg
SPiNMedlem sedan mars 20005 832 inlägg
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