Ich erinnere mich, dass ich, als ich anfing, Java zu lernen, Java IO -Streaming nicht verstand, also schrieb ich diesen Aufsatz und hoffte, dass es für diejenigen hilfreich wäre, die gerade angefangen haben, Java zu lernen und ihre Anfrage in der Zukunft zu erleichtern. Java IO -Streams sind in Zeichenströme (Leser, Schriftsteller) und Byte -Streams (InputStream, OutputStream) unterteilt. Byte -Streams, wie der Name schon sagt, Byte -Streams sollen den Inhalt von Dateien in Byte -Arrays lesen und dann in eine andere Datei ausgeben. Die kleinste Einheit von Charakter -Streaming -Operationen sind Zeichen. Schauen wir uns den Überblick über IO -Streams an:
Das Folgende ist das erste, was die Datei durch einen Zeichenstrom lesen und schreiben kann:
Paket lib; import java.io.buffenedReader; import java.io.file; import Java.io.filenotfoundException; import Java.io.filereader import Java.io.FileWriter; Datei ("f: //test.txt"); // Methode zum Schreiben von Zeichen Stream public String writeInfile () löst IOException {String str = "" aus; String count = ""; Versuchen Sie es mit {// Zeichenstream, um die Datei BufferedReader BF = New BufferedReader (New FileReader (F)) zu lesen; while (true) {// Jede Datenzeile lesen und sie strf ((count = bf.readline ())! = null) {str += count; } else {break; }} // Schließen Sie den Stream bf.close (); } catch (FilenotFoundException e) {e.printstacktrace (); } return str; } // Methode für den Charakterstrom Lesen public void getReader () {try {// wobei True am Ende des Originaldateiinhalts hinzufügen bedeutet. Wenn nicht geschrieben, bedeutet dies, die Datei zu entleeren und den Inhalt hinzuzufügen. Pressewriter PW = neuer Pressewriter (neuer Filewriter (F, Richtig)); PW.Write ("Eingabezeichenfolge für Datei 2"); pw.close (); } catch (ioException e) {e.printstacktrace (); }} public static void main (String [] args) löst ioException {test test = new Test () aus; // Geben Sie die Zeichenfolge in die Datei test.getReader () ein; // Lesen Sie die entsprechende Zeichenfolge String str = test.writeInFile (); // öffnen system.out.println ("Dateiinhalt:"+str); }}In den wichtigsten Punkten des obigen Code gibt es Kommentare, sodass ich nicht nacheinander in Details eingehen werde. Die Hauptsache ist, dass Sie nicht vergessen, nach der Verwendung des Streams zu schließen.
Betätigen Sie dann mit der Datei über einen Byte -Stream und kopieren Sie den Inhalt einer Datei in eine andere:
Paket com.file.test2; import Java.io.file; import Java.io.FileInputStream; Import Java.io.filenotFoundException; Importieren Sie Java.io.FileOutputStream importieren Java.io.io.ioxception; öffentliche Klassen Testfile2 {//. IOException {// Die Quelldatei, die kopiert werden soll f = neue Datei ("d: //test.txt"); // Zieldatei f2 = neue Datei ("d: //test2.txt"); // Definieren Sie ein Array von Byte -Typ, um das Leseinhalts -Byte zu speichern [] b = neues Byte [1024]; int Länge; Versuchen Sie {// Definieren Sie den Lesen von Stream FileInputStream in = new FileInputStream (f); // Die Stream -Ausgabe in den DateidateiOutputStream out = new FileOutputStream (F2) definieren; // den Dateiinhalt in eine andere Datei ausgeben, wobei ((Länge = in.read (b))! =-1) {out.write (b, 0, Länge); } out.close (); in.close (); } catch (FilenotFoundException e) {e.printstacktrace (); }}}Im Betrieb von Byte Stream muss die Quelldatei in Zeile 13 vorhanden sein. Sie können den Dateipfad nach Bedarf selbst ändern. Sie müssen nur existieren. Andernfalls wird ein Fehler, dass die Datei nicht gefunden werden kann, gemeldet. Wenn Sie gleichzeitig den Inhalt des Lese -Byte -Streams auf der Konsole ausgeben möchten, können Sie zwei Codes zwischen den Zeilen 27 und 28 hinzufügen: in.read (B, 0, B.Length); System.out.println (neuer String (B));
Die oben genannten sind verwandte Operationen von Zeichenströmen und Byte -Streams. Tatsächlich ist der Code nicht schwierig, es geht hauptsächlich um das eigene Verständnis. Jeder wird unterschiedliche Möglichkeiten haben, die gleichen Probleme zu verstehen. Für uns Programmierer müssen wir natürlich auch mehr tun. Abschließend hoffe ich, dass der oben genannte Inhalt für alle hilfreich ist, und bitte unterstützen Sie diese Website weiter.