Basisklasse | Eingabestrom | Ausgabestrom |
---|---|---|
Zeichenstrom | Reader | Writer |
Binärstrom | InputStream | OutputStream |
** Datei öffnen **
** Verwenden Sie die newBufferedWriter-Methode der BufferedWriter-Klasse ** (Buffer ist ein Speicherbereich, in dem Zeichenfolgendaten vorübergehend gespeichert werden.)
Additionsmodus mit StandardOpenOption.APPEND
im Argument angegeben
** Dateiausgabe **
** Schreibmethode **
Speichern Sie die Daten im Puffer und geben Sie sie als Datei aus, sobald sie akkumuliert sind
** NewLine-Methode ** Begrenzte Zeilenumbrüche (\ n
für Unix, \ r \ n
für Windows)
Mit der Methode Files.write können Sie eine Liste von Zeichenfolgen in eine Datei schreiben.
* Files.write(Paths.get("./data.log"),list,StandardCharsets.UTF_8);
** Datei schließen **
Verwenden Sie die Syntax "Try-with-Resources"
Das durch try erstellte Objekt wird ** beim Verlassen des Blocks automatisch zerstört **! (Es ist in Ordnung, wenn die Methode close aufgrund eines Fehlers in der Mitte nicht aufgerufen wird.)
//Ausführungszeit./data.Im Protokoll aufzeichnen
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"))) {
//Datei hinzufügen
//try (var writer = Files.newBufferedWriter(Paths.get("./data.log"), StandardOpenOption.APPEND)) {
writer.write(LocalDateTime.now().toString());
//Beim Vereinheitlichen von Zeilenvorschubzeichen
//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) {
//Der Inhalt der Datei
System.out.println(line);
}
} catch (IOException e) {
e.printStackTrace();
}
}
}
//input.Lesen Sie png mit BufferedInputStream
//Geben Sie das Ergebnis mit BufferedOutputStream aus.Ausgabe an 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();
}
}
}
Konvertieren Sie strukturierte Daten wie * ** serialize **: in ein Byte-Array
Durch Serialisieren des Objekts in ein Byte-Array kann das Objekt in der Datenbank gespeichert und über das Netzwerk übertragen werden.
** Bedingungen für serialisierbare Klassen **
Implementierung einer serialisierbaren Schnittstelle
public class Article implementiert Serializable {
Nur Deklaration, keine Methode = ** Marker-Schnittstelle **
Instanzfelder sind Basistypen und serialisierbare Typen
Deklaration der Serialisierungsversion
** Geben Sie die Klassenversion mit serialVersionUID an **
InvalidClassException bei Verwendung verschiedener Versionen der Klasse zwischen Serialisierung / Deserialisierung
Hat einen Konstruktor ohne Argumente, wenn die Basisklasse nicht serialisiert werden kann
Wenn die Basisklasse die serialisierbare Schnittstelle nicht implementiert und nur die abgeleitete Klasse serialisiert werden kann, rufen Sie den Basisklassenkonstruktor auf, um die abgeleitete Klasse zu deserialisieren.
** Serialisieren Sie das Objekt mit der ObjectOutputStream-Klasse **
Geben Sie eine Datei mit dem Argument "FileOutputStream (Datei)" aus
Übergeben Sie das Objekt an die writeObject-Methode (create article.ser)
** Deserialisieren mit der ObjectInputStream-Klasse **
Übergeben Sie die zu lesende Datei als Argument und lesen Sie sie mit der readObject-Methode
Der Rückgabewert ist ein Objekt
//article.Artikelklasse auf ser(Serialisierbare Klasse)sparen
//Lesen Sie das Byte-Array aus der Datei und geben Sie den Inhalt des deserialisierten Verschlüsselungsobjekts mit öffentlichem Schlüssel aus
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("Java 11 Änderungen und neue 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