Il semble qu’il y a quelques façons pour lire et écrire des données à l’aide de fichiers.
Je suis en train de lire des données ASCII dans un fichier. Quelles sont les différences afin que je peux décider ce qui est le meilleur moyen ?
Il semble qu’il y a quelques façons pour lire et écrire des données à l’aide de fichiers.
Je suis en train de lire des données ASCII dans un fichier. Quelles sont les différences afin que je peux décider ce qui est le meilleur moyen ?
Ma façon préférée de lire un fichier de petite taille, est d'utiliser un BufferedReader et un StringBuilder. Il est très simple et au point (bien que pas particulièrement efficace, mais assez bon pour la plupart des cas):
BufferedReader br = new BufferedReader(new FileReader("file.txt"));
try {
StringBuilder sb = new StringBuilder();
String line = br.readLine();
while (line != null) {
sb.append(line);
sb.append(System.lineSeparator());
line = br.readLine();
}
String everything = sb.toString();
} finally {
br.close();
}
Certains ont fait remarquer qu'après avoir Java 7, vous devez utiliser la fermeture automatique caractéristiques:
try(BufferedReader br = new BufferedReader(new FileReader("file.txt"))) {
StringBuilder sb = new StringBuilder();
String line = br.readLine();
while (line != null) {
sb.append(line);
sb.append(System.lineSeparator());
line = br.readLine();
}
String everything = sb.toString();
}
Quand j'ai lu les chaînes comme ceci, j'ai l'habitude de vouloir faire quelques manipulation des chaînes par ligne de toute façon, donc, puis-je aller pour cette mise en œuvre.
Mais si je veux réellement viens de lire un fichier dans une Chaîne, j'ai toujours l'utilisation d'Apache Commons IO avec la classe IOUtils.la méthode toString (). Vous pouvez avoir un coup d'oeil à la source ici:
http://www.docjar.com/html/api/org/apache/commons/io/IOUtils.java.html
FileInputStream inputStream = new FileInputStream("foo.txt");
try {
String everything = IOUtils.toString(inputStream);
} finally {
inputStream.close();
}
Et encore plus simple avec Java 7:
try(FileInputStream inputStream = new FileInputStream("foo.txt")) {
Session IOUtils;
String everything = IOUtils.toString(inputStream);
}
L'ASCII est un fichier TEXTE si vous utilisez des Lecteurs pour la lecture. Java prend également en charge la lecture à partir d'un fichier binaire en utilisant InputStreams. Si les fichiers en cours de lecture sont énormes, alors vous voulez utiliser un BufferedReader sur le dessus d'un FileReader pour améliorer les performances de lecture.
Aller à travers cet article sur comment utiliser un Lecteur de
Je voudrais aussi vous conseille de télécharger et de lire ce merveilleux (mais gratuit) livre intitulé Penser En Java
Dans Java 7
nouvelle Chaîne(les Fichiers.readAllBytes(...)) ou des Fichiers.readAllLines(...)
Dans Java 8
Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.