Wenn Sie feststellen, ob es sich bei einem Dateiobjekt um eine Datei oder ein Verzeichnis handelt, müssen Sie zunächst feststellen, ob der vom Dateiobjekt gekapselte Inhalt vorhanden ist, und die Kodierungsmethode kann auch beim Erstellen des Textdatei-Operationsstroms angegeben werden.
Datei f;
f.exists();
f.isDirectory();
f.isFile();
f.deleteOnExit();//Löschen Sie die angegebene Datei, wenn das Programm beendet wird;
f.createNewFile();//Eine Datei am angegebenen Speicherort erstellen. Wenn die Datei bereits vorhanden ist, geben Sie false zurück.
f.getParent();//Diese Methode gibt das übergeordnete Verzeichnis im absoluten Pfad zurück. Wenn der relative Pfad ein übergeordnetes Verzeichnis enthält, wird Null zurückgegeben.
File.separator //Dateisystemtrennzeichen, verschiedene Systeme haben unterschiedliche Trennzeichen;
FilenameFilter:// wird zum Filtern von Dateinamen verwendet;
FilenameFilter.accept(File dir,String name); //Testen Sie, ob die angegebene Datei in einer Dateiliste enthalten ist;
Name: der Name der Datei;
public boolean Accept(File dir, String name) { return name.endsWith(".txt" }
// Der Puffer scheint die Effizienz von Stream-Operationen zu verbessern. Vor dem Erstellen eines Puffers muss ein Stream-Objekt vorhanden sein.
//Die Puffertechnologie schließt tatsächlich das Array innerhalb des Objekts und schreibt es nach dem Speichern einmal.
Konstruktor: Der Konstruktor, der den Stream an den Puffer übergibt;
Hinweis: Solange der Puffer verwendet wird, muss der Puffer aktualisiert werden.
Gepuffert... buf;
buf.flush();
buf.close();//Puffer schließen bedeutet, das Stream-Objekt im Puffer zu schließen;
BufferedReader bufr;
bufr.readLine();//Gibt eine Zeile zurück, enthält aber kein Zeilenumbruchzeichen;
// Unabhängig davon, ob eine Zeile oder mehrere Zeichen gelesen werden, werden sie tatsächlich einzeln auf der Festplatte gelesen. Daher besteht die endgültige Methode darin, die Lesemethode einzeln zu lesen.
/*
* ByteArrayInputStream: Während der Erstellung muss die Datenquelle empfangen werden, und die Datenquelle ist ein Byte-Array.
* ByteArrayOutputStream: Beim Erstellen ist es nicht erforderlich, das Datenziel zu definieren, da intern ein Byte-Array variabler Länge definiert wird, das das Datenziel darstellt.
* Beide Stream-Objekte arbeiten mit Arrays, verbrauchen keine Systemressourcen und müssen nicht geschlossen werden.
*/
//Die Daten im internen Puffer werden aktualisiert, bevor die Stream-Ressource geschlossen wird.
// Flush(); Nach der Aktualisierung (Speichern der Daten im Puffer in der Datei) wird der Stream weiterhin verwendet;
// Serialisierung: Statische Mitglieder können nicht serialisiert werden;
// Wenn Sie nicht möchten, dass nicht-statische Mitglieder serialisiert werden, fügen Sie den Modifikator hinzu: transient int,,,
System.in:InputStream
System.out:OutputStream