Heim >Java >javaLernprogramm >Was bedeutet io-Stream in Java?

Was bedeutet io-Stream in Java?

PHP中文网
PHP中文网Original
2017-06-21 09:29:502740Durchsuche

1. Eingabestream, Daten können nur daraus gelesen, aber keine Daten darauf geschrieben werden. Ein Ausgabestream kann Byte-Daten nur schreiben, aber nicht daraus lesen.

2. Die Typen von InputStream sind:

ByteArrayInputStream     包含一个内存缓冲区,字节从中取出。
FileInputStream          从文件中获得字节。
ObjectInputStream        用来恢复被序列化的对象。
PipedInputStream         管道输入流,读取管道内容。多和PipedOutputStream一起用于多线程通信。
SequenceInputStream      是多种输入流的逻辑串联,从第一个输入流读取,直到最后一个输入流。
StringBufferInputStream  读取的字节由字符串提供。

2. Die Typen von OutputStream sind auch wie folgt:

ByteArrayOutputStream     该类实现了一个输出流,其数据被写入由byte数组充当的缓冲区,缓冲区会随着数据的不断写入而自动增长。 
FileOutputStream          该类实现了一个输出流,其数据写入文件。
ObjectOutputStream        该类将实现了序列化的对象序列化后写入指定地方。  
PipedOutputStream         管道的输出流,是管道的发送端。

3.Objectstream und InputStream werden häufig zusammen mit FileInputStream und FileOutputStream verwendet. (Wird während der Initialisierung verwendet)

ObjectOutputStream objectOutputStream = new ObjectOutputStream(new FileOutputStream("Logon.out"));

4. Die File-Klasse bezieht sich nicht auf eine Datei, sondern repräsentiert auch den Namen einer Reihe von Dateien. Es kann mit der list()-Methode abgefragt werden Dieser Satz.

5. StreamTokenizer wird verwendet, um jeden InputStream in eine Reihe von Zahlen aufzuteilen. StringTokenizer bietet sehr ähnliche Funktionen wie StreamTokenizer, ähnelt jedoch der Methode split() von C#.

6. Schritte bei der Verwendung von Zip zum Komprimieren von Dateien:

Generieren Sie zuerst die komprimierte Datei:

FileOutputStream f =new FileOutputStream("test.zip");
CheckedOutputStream csum =new CheckedOutputStream(
f, new Adler32());
ZipOutputStream out =new ZipOutputStream(new BufferedOutputStream(csum));
out.setComment("A test of Java Zipping");//压缩文件注释信息

Dann müssen Sie Fügen Sie die zu komprimierende Datei hinzu:

out.putNextEntry(new ZipEntry(test.txt);

Bei Bedarf können Sie weiterhin andere Dinge in die Datei schreiben, müssen jedoch sicherstellen, dass im Out bereits eine ZipEntry-Klasse vorhanden ist Klasse.

Quellcode:

import java.io.*;import java.util.*;import java.util.zip.*;public class ZipCompress {public static void main(String[] args) {try {
            FileOutputStream fileOutputStream = new FileOutputStream("test.zip");
            CheckedOutputStream csum = new CheckedOutputStream(fileOutputStream, new Adler32());
            ZipOutputStream outputStream = new ZipOutputStream(new BufferedOutputStream(csum));
            outputStream.setComment("A test of java Zipping");
            System.out.println("Writing file" + "zip.txt");
            BufferedReader in = new BufferedReader(new FileReader("zip.txt"));
            outputStream.putNextEntry(new ZipEntry("zip.txt"));// int c;// while ((c = in.read()) != -1) {// outputStream.write(c);// }// in.close();outputStream.write("123".getBytes());
            outputStream.close();
            System.out.println("Checksum:" + csum.getChecksum().getValue());
            System.out.println("Reading file");
            FileInputStream fileInputStream = new FileInputStream("test.zip");
            CheckedInputStream csumi = new CheckedInputStream(fileInputStream, new Adler32());
            ZipInputStream in2 = new ZipInputStream(new BufferedInputStream(csumi));
            ZipEntry zipEntry;
            System.out.println("Checksum:" + csumi.getChecksum().getValue());while ((zipEntry = in2.getNextEntry()) != null) {
                System.out.println("Reading file:" + zipEntry);int x;while ((x = in2.read()) != -1) {
                    System.out.println(x);
                }

            }

            in2.close();

            ZipFile zf = new ZipFile("test.zip");
            Enumeration e = zf.entries();while (e.hasMoreElements()) {
                ZipEntry ze2 = (ZipEntry) e.nextElement();
                System.out.println("File: " + ze2);
            }
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}

7. Der Unterschied zwischen Serialisierung und externalisierbaren Schnittstellen. Der Unterschied ist standardmäßig alle Objekte werden serialisiert, Externalizable kann jedoch den serialisierten Teil, dh die teilweise Serialisierung, steuern.

8.Serialisierungsmethode zur Steuerung der Serialisierung: (1) Wenden Sie das Schlüsselwort transient (temporär) an.

(2) Wir können die Serializable-Schnittstelle implementieren und die Methode von ") oder readObject () hinzufügen (beachten Sie, dass "add" anstelle von "coverage" oder "implementation" verwendet wird). Sobald das Objekt serialisiert oder neu zusammengesetzt ist, werden diese beiden Methoden jeweils aufgerufen.

Das obige ist der detaillierte Inhalt vonWas bedeutet io-Stream in Java?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn