Fondamentalement, la classe java.io.File représente un fichier dans le système de fichiers, mais ne contient pas des méthodes pour les manipuler (autres que les créer ou les supprimer)
Lorsque vous devez travailler avec eux, vous utilisez d'autres classes du paquet java.io, BufferefReader et InputStreamReader sont parmi eux, mais thare sont d'autres comme FileInputStream. Selon l'opération que vous voulez effectuer, vous pouvez utiliser un lecteur ou un flux (les classes se terminant par "Reader" ou "Writer" sont pour le contenu du texte, les classes se terminant par "Stream" sont pour le contenu binaire, mais bien sûr , vous pouvez toujours lire/écrire du texte en binaire).
La plupart du temps, vous devez "chaîner" quelques-unes de ces classes pour effectuer un travail. Il est également important de noter que, la plupart du temps, vous pouvez avoir un code très similaire à écrire sur une socket.
Un exemple naïf pourrait être ceci:
package demo;
import java.io.BufferedReader;
import java.io.FileReader;
import java.io.File;
import java.io.IOException;
import java.util.List;
import java.util.ArrayList;
public class ReadLines {
public static void main(String [] args) throws IOException {
File toRead = new File(args[0]);
if(toRead.exists()) {
List<String> lines = readLines(toRead);
} else {
System.out.println(toRead.getName() + " doesn't exists");
}
}
private static List<String> readLines(File fromFile) throws IOException {
BufferedReader reader = null;
List<String> lines = new ArrayList<String>();
try {
reader = new BufferedReader(new FileReader(fromFile)); // chaining
String line = null;
while((line = reader.readLine()) != null) {
lines.add(line);
}
} finally {
// always close the file
if(reader != null) try {
reader.close();
} catch(IOException ioe) {
// it's ok to ignore an exception while closing a file
}
}
return lines;
}
}
J'espère que ce code, le rendre plus clair pour vous et compiles (
: PI ne pas un compilateur à la main
)
Voir aussi :
http://download.oracle.com/javase/tutorial/essential/io/ http://download.oracle.com/javase/6/docs/api/java/io/package-summary.html http://download.oracle.com/javase/6/docs/api/java/io/Reader.html http://download.oracle.com/javase/6/docs/api/java/io/Writer.html http://download.oracle.com/javase/6/docs/api/java/io/InputStream.html http://download.oracle.com/javase/6/docs/api/java/io/OutputStream.html
Bon exemple mais il y a un potentiel NPE dans le bloc finally (le lecteur peut être nul si une erreur survient dans la nouvelle ligne BufferedReader ...). –