Classe de base | Flux d'entrée | Flux de sortie |
---|---|---|
Flux de caractères | Reader | Writer |
Flux binaire | InputStream | OutputStream |
** Fichier ouvert **
** Utilisez la méthode newBufferedWriter de la classe BufferedWriter ** (Buffer est une zone de mémoire qui stocke temporairement des données de chaîne de caractères)
Mode d'ajout avec StandardOpenOption.APPEND
spécifié dans l'argument
** Sortie de fichier **
** méthode d'écriture **
Enregistrez les données dans Buffer et sortez-les sous forme de fichier une fois qu'elles sont accumulées
** Méthode NewLine ** sauts de ligne délimités (\ n
pour Unix, \ r \ n
pour Windows)
Vous pouvez écrire une liste de chaînes dans un fichier avec la méthode Files.write.
* Files.write(Paths.get("./data.log"),list,StandardCharsets.UTF_8);
** Fichier Fermer **
Utilisez la syntaxe try-with-resources
L'objet créé par try est ** automatiquement détruit lorsqu'il quitte le bloc **! (Ce n'est pas grave si la méthode close n'est pas appelée en raison d'une erreur au milieu)
//Temps d'exécution./data.Enregistrer dans le journal
import java.io.IOException;
import java.nio.file.Files;
import java.nio.file.Paths;
//import java.nio.file.StandardOpenOption;
import java.time.LocalDateTime;
public class Main {
public static void main(String[] args) {
try (var writer = Files.newBufferedWriter(Paths.get("./data.log"))) {
//Ajout de fichier
//try (var writer = Files.newBufferedWriter(Paths.get("./data.log"), StandardOpenOption.APPEND)) {
writer.write(LocalDateTime.now().toString());
//Lors de l'unification des caractères de saut de ligne
//write(LocalDateTime.now().toString()+"\r\n");
writer.newLine();
} catch (IOException e) {
e.printStackTrace();
}
}
}
import java.io.IOException;
import java.nio.file.Files;
import java.nio.file.Paths;
public class Main {
public static void main(String[] args) {
try (var reader = Files.newBufferedReader(Paths.get("./sample.txt"))) {
var line = "";
while ((line = reader.readLine()) != null) {
//Le contenu du fichier
System.out.println(line);
}
} catch (IOException e) {
e.printStackTrace();
}
}
}
//input.Lire png avec BufferedInputStream
//Sortir le résultat avec BufferedOutputStream.Sortie au format png
import java.io.BufferedInputStream;
import java.io.BufferedOutputStream;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
public class Main {
public static void main(String[] args) {
try (
var in = new BufferedInputStream(
new FileInputStream("./input.png "));
var out = new BufferedOutputStream(
new FileOutputStream("./output.png "))) {
var data = -1;
while ((data = in.read()) != -1) {
out.write((byte) data);
}
} catch (IOException e) {
e.printStackTrace();
}
}
}
Convertir des données structurées telles que * ** sérialiser **: en tableau d'octets
En sérialisant l'objet dans un tableau d'octets, l'objet peut être enregistré dans la base de données et transmis sur le réseau.
** Conditions pour les classes sérialisables **
Implémentation d'interface sérialisable
Article de classe publique implémente Serializable {
Déclaration uniquement, pas de méthode = ** Interface marqueur **
Les champs d'instance sont des types de base et des types sérialisables
Déclaration de version de sérialisation
** Spécifiez la version de la classe avec serialVersionUID **
InvalidClassException lors de l'utilisation de différentes versions de la classe entre sérialisation / désérialisation
A un constructeur sans argument lorsque la classe de base ne peut pas être sérialisée
Lorsque la classe de base n'implémente pas l'interface Serializable et que seule la classe dérivée peut être sérialisée, appelez le constructeur de classe de base pour désérialiser la classe dérivée.
** Sérialisez l'objet avec la classe ObjectOutputStream **
Sortie d'un fichier avec FileOutputStream (file)
comme argument
Passez l'objet à la méthode writeObject (create article.ser)
** Désérialiser avec la classe ObjectInputStream **
Passer le fichier à lire comme argument et lire avec la méthode readObject
La valeur de retour est un objet
//article.Classe d'article sur ser(Classe sérialisable)sauvegarder
//Lire le tableau d'octets du fichier et afficher le contenu de l'objet de chiffrement à clé publique désérialisé
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;
public class Main {
public static void main(String[] args) {
final var file = "./article.ser";
try (var out = new ObjectOutputStream(new FileOutputStream(file))) {
out.writeObject(new Article("Changements de Java 11 et nouvelle API",
"https://codezine.jp/article/corner/751", false));
} catch (IOException e) {
e.printStackTrace();
}
try (var in = new ObjectInputStream(new FileInputStream(file))) {
var a = (Article)in.readObject();
System.out.println(a);
} catch (ClassNotFoundException | IOException e) {
e.printStackTrace();
}
}
}
Recommended Posts