Java における io ストリームとは何ですか?

PHP中文网
リリース: 2017-06-21 09:29:50
オリジナル
2719 人が閲覧しました

1. 入力ストリーム。データは読み取りのみ可能ですが、データを書き込むことはできません。出力ストリームはバイト データの書き込みのみが可能ですが、バイト データからの読み取りはできません。

2.InputStream のタイプは次のとおりです:

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

2. OutputStream のタイプも次のとおりです:

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

3. Objectstream は、FileInputStream および FileOutputStream と一緒に使用されることがよくあります。 (初期化中に使用されます)

ObjectOutputStream objectOutputStream = new ObjectOutputStream(new FileOutputStream("Logon.out"));
ログイン後にコピー

4. File クラスはファイルを参照しませんが、ファイル セットを表す場合は list() メソッドを使用してクエリすることもできます。セット。

5. StreamTokenizer は、InputStream を一連の数値に分割するために使用されます。StringTokenizer は StreamTokenizer と非常によく似た関数を提供しますが、これは C# の Split() メソッドに似ています。

6. Zip を使用してファイルを圧縮する手順:

まず圧縮ファイルを生成します:

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");//压缩文件注释信息
ログイン後にコピー

次に、圧縮するファイルを追加します:

out.putNextEntry(new ZipEntry(test.txt);
ログイン後にコピー

ただし、out クラスに ZipEntry クラスがすでに存在することを確認する必要があります。

ソースコード:

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. Serialization と Externalizable インターフェイスの違いは、どちらもデフォルトでクラスをシリアル化できるインターフェイスであるのに対し、Externalizable はシリアル化された部分を制御できることです。 、部分連載。

8.serialization シリアル化を制御する方法: (1) transient (一時的) キーワードを適用します。 (2) Serializable インターフェースを実装し、「) または」のメソッドと readObject() を追加します (「カバー」または「実装」ではなく「追加」であることに注意してください)。オブジェクトがシリアル化または再アセンブルされると、これら 2 つのメソッドがそれぞれ呼び出されます。

以上がJava における io ストリームとは何ですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート