J'enseigne Java à l'école, donc je l'ai fait à partir des matériaux de l'époque.
Pour le moment, expliquez les mots et les phrases.
Vous pouvez faire I (entrée / entrée) et O (sortie / sortie) du système de fichiers!
Un système de fichiers est un monde créé par un fichier (File) qui stocke des données dans le système d'exploitation et un répertoire (Directory, Folder) qui les gère collectivement.
Pour les fichiers et les répertoires, vous pouvez faire tout ce que nous faisons (probablement) dans le système d'exploitation, comme supprimer, créer, exister,…, écrire, lire, etc. !!
→ NewIO, une bibliothèque Java standard, est recommandée!
Dans le passé, il était principalement composé d'une classe appelée File (série java.io), mais maintenant il est pratique et optimisé, il utilise donc un package appelé New I / O (série java.nio). Ce sera désormais le courant dominant.
Dans NewIO, les deux (trois) classes suivantes jouent généralement un rôle de base.
Path:Une classe qui convertit String pour représenter le chemin d'un fichier
Paths:Classe de création de chemin
Files:Classe qui gère réellement les fichiers
Obtenir le chemin (exemple)… Emplacement du fichier!
Path path = Paths.get(“C:\\”, “a”);
Exemple d'utilisation de fichiers ... Effectuer des opérations sur des fichiers / répertoires.
Files.exsit(path);
Fondamentalement, vous devez utiliser les deux classes suivantes. (Bien que la plupart des autres classes soient fondamentalement anciennes, veuillez noter qu'elles sont souvent utilisées dans d'autres classes même si elles sont anciennes.)
BufferedWriter:Une classe qui écrit efficacement dans un fichier à l'aide d'un tampon
BufferedReader:Une classe qui lit efficacement les fichiers à l'aide d'un tampon
Données temporairement placées dans l'espace mémoire. Aussi connu sous le nom de tmp / temp.
Peut-être que je ne l'utilise pas beaucoup (dans NewIO).
BufferedWriter bw = new BufferedWriter(Writer);
BufferedReader br = new BufferedReader(Reader);
BufferedWriter bw = Files.newBufferedWriter(path);
bw.write(String);
String line = br.readLine();
try {
BufferedWriter bw = Files.newBufferedWriter(path);
bw.write(“A”);
bw.close();
} catch (IOException ex) {
ex.printStackTrace();
}
En outre, une exception peut se produire lors de la fermeture et il est nécessaire de gérer les exceptions pour la fermeture. Par conséquent, il est nécessaire de procéder comme suit.
try {
BufferedWriter bw = Files.newBufferedWriter(path);
bw.write(“A”);
} catch (IOException ex) {
ex.printStackTrace();
} finally {
try {
bw.close();
} catch (IOException ex) {
ex.printStackTrace();
}
}
Enfoncer longtemps
C'est très long à écrire comme avant. Par conséquent, la syntaxe try-catch-resouce a été ajoutée à partir de Java 7, et il est devenu possible d'écrire de manière concise comme suit.
try (BufferedWriter bw = Files.newBufferedWriter(path)) {
bw.write(“A”);
}
très bon. Référence: https://qiita.com/Takmiy/items/a0f65c58b407dbc0ca99
Le simple fait d'appeler br.write (text) ne coupe pas la ligne,
br.write("AA");
br.write("BB");
↓
AABB
Ce sera quelque chose comme.
Pour couper une ligne, ajoutez un caractère de saut de ligne à la fin de la chaîne de ligne.
bw.write(text + System.lineSeparator());
À propos de la syntaxe habituelle que nous avons utilisée jusqu'à présent ...
System.out.println(“Hello world!”);
Si vous regardez cela après avoir compris FileIO, je pense que c'est un peu comme FileIO.
Que voulez-vous dire? Ce sera.
En fait, System.out (out) est un OutputStream! C'est. (Autrement dit, pour la sortie)
Pour le moment, Stream est une abstraction de FileIO. (peut être) De même, il existe également System.in, qui est un InputStream. (Autrement dit, pour l'entrée)
Cependant, c'est naturel quand on y pense, et l'écriture de caractères sur la console n'est pas très différente de l'écriture de caractères sur un fichier (j'ai pensé qu'il était intéressant d'avoir ce genre de points communs).
Recommended Posts