IOストリームの基本の概要

IOストリーミングの概念

フロー:線形、方向性。
IO:入力(入力)および出力(出力)。

JAVAでのIOストリームの分類:

ここに画像の説明を挿入
インターネットからの写真

バイトストリーム:

  Javaの最下位レベルのストリームは、任意のファイル(プレーンテキスト、ビデオ、画像、サウンドなど)をバイト単位で読み書きできます。
理由:すべてが「バイト」である
A)出力ストリーム:OutputStream(抽象クラ​​ス)
B)入力ストリーム:InputStream(抽象クラ​​ス)

文字ストリーム:

  バイトストリームに基づいて、文字を単位として「プレーンテキスト」ファイルを読み書きし、一度に複数のバイトを読み取るのは非常に便利です。(プレーンテキストデータの処理である限り、バイトストリームの使用に加えて、文字ストリームの使用が優先されます。)
   A)出力ストリーム:
   B)入力ストリーム:

IO stream_byte出力stream_FileOutputStream:

構築方法:
  1)新しいFileOutputStream(文字列名):(上書き)ファイル出力ストリームを作成し、指定した名前でファイルに書き込みます。
  2).FileOutputStream(String name、boolean append)(Append)ファイル出力ストリームを作成し、指定された名前でファイルに書き込みます。
  3).FileOutputStream(ファイルファイル):(上書き)指定されたFileオブジェクトで表されるファイルに書き込むファイル出力ストリームを作成します。
  4)。FileOutputStream(ファイルファイル、ブール型追加)(追加)指定されたFileオブジェクトで表されるファイルに書き込むファイル出力ストリームを作成します。
注:すべての「出力ストリーム」がJavaで構築されている場合、ファイルは存在せず、自動的に作成されます。

バイト書き込み(出力)メソッド:(3種類)
   A).write(int b):バイトを出力;
   B).write(byte [] byteArray):バイト配列を出力;
  C).write( byte [] byteArray、int off、int len):バイト配列の一部を出力します;
   1)。byteArray:書き込む配列;
   2)。off:開始位置のインデックス;
    3)。len:出力の数;

public static void main(String[] args) throws IOException {
    //1.构造方法:
    FileOutputStream out = new FileOutputStream("demo.txt",false);

    //2.输出的方法:
    //2-1:write(int b):输出一个字节
    out.write(97);//97 --> 转换为二进制: 0110 0001 --> 写入文件:0110 0001
    out.write(999997);//999997 -->转换为二进制:111101000010 0011 1101 --> 取最低的一个字节:写入文件:0011 1101

    //2-2:write(byte[] byteArray):输出多个字节
    byte[] byteArray = {97, 98, 99, 100};
    out.write(byteArray);
     //间接的输出一个“字符串” 
     out.write("大家好,呵呵".getBytes());
     //输出一个换行符:
     out.write("\r\n".getBytes());


    //2-3:write(byte[] byteArray,int offset,int len):
    //例如:写入byteArray数组中的99,100
    out.write(byteArray,2,2);
    //关闭流--释放资源
     out.close();
}

IO stream_byte入力stream_FileInputStream:

 1)。構築方法:
   1. FileInputStream(文字列名)実際のファイルとの接続を開いてFileInputStreamを作成します。ファイルには、ファイルシステムのパス名で名前が付けられます。
   2.FileInputStream(ファイルファイル)実際のファイルとの接続を開いてFileInputStreamを作成します。ファイルは、ファイルシステム内のFileオブジェクトファイルによって名前が付けられます。
注:Javaでのすべての「入力ストリーム」の構築中に、ファイルが存在する必要があります。そうでない場合、例外がスローされます。
読み取り方法:
  1).public int read():バイトを読み取ります
  2).public int read(バイト[ ] byteArray):複数のバイトを読み取り、それらをパラメーター配列にカプセル化します。

	public class Demo {
    	public static void main(String[] args) throws IOException {
        File file = new File("demo.txt");
        if (!file.exists()) {
            file.createNewFile();
        }
        FileInputStream in = new FileInputStream(file);

        //读一个字节
        /*int b = 0;
        while ((b = in.read()) != -1) {
            System.out.println((char)b);
        }*/

        //读取多个字节:3个
        byte[] byteArray = new byte[3];
        int len = 0;
        while ((len = in.read(byteArray)) != -1) {
            //将 byte[]数组转换为String
            String str = new String(byteArray,0,len);
            System.out.println("转换为String后:" + str);
        }
    }
}

IO stream_character stream_outputストリームFileWriter

(システムのデフォルトの文字セットのみを使用できます)
構築メソッド:
1)。FileWriter(String fileName)は、ファイル名を使用してFileWriterオブジェクトを構築します。
2)。FileWriter(String fileName、boolean append)はFileWriterオブジェクトを構築し、書き込まれたデータを追加するかどうかを示すブール値を持つファイル名を指定します。
3)。FileWriter(ファイルファイル)FileオブジェクトのFileWriterオブジェクトを作成します。
4)。FileWriter(ファイルファイル、ブール型追加)(追加)をFileオブジェクトに追加して、FileWriterオブジェクトを作成します。
出力方法:
 1).write(int c):文字を出力する;
 2).write(char [] chArray):文字配列を出力する;
 3).write(char [] chArray、int off、int len):出力する文字配列の一部;
  4).write(文字列str):文字列を出力;
  5).write(文字列str、int off、int len):出力文字列の一部;

public static void main(String[] args) throws IOException {
        //注意:构造时,文件可以不存在,会自动创建
        FileWriter out = new FileWriter("demo.txt");

        //**********五个输出的方法*************************************//
        //1.write(int c):输出一个字符
        out.write(98);
        //2.write(char[] chArray):输出一个字符数组
        char[] chArray = {'a','b','你','好','呵','呵'};
        out.write(chArray);

        //3.write(char[] chArray,int off,int len("输出字符数组的一部分;
        out.write(chArray,4,2);

        //4.write(String s):输出一个字符串
        out.write("我爱IO");

        //5.write(String s,int off,int len):输出字符串的一部分
        String str = "北京天安门前";
        out.write(str,4,3);

        //*******************输出换行************************//
        out.write("\r\n");
        out.write("你好");
        //刷新缓存区
//        out.flush();
	   //注意:"字符流"内部自带缓存区,write()之后一定要flush()/close()才能
	   //将缓存区的数据写入到文件。
        out.close();//相当于:flush() + close()
    }

文字stream_inputストリームFileReader:

構築方法:
1).FileReader(String fileName)読み取るファイルの名前を指定して、新しいFileReaderを作成します。
2).FileReader(ファイルファイル)新しいFileReaderを作成し、ファイルに読み取りを与えます。
読み取り方法:
1).int read():文字を読み取ります。戻り値は読み取った文字の「エンコーディング」です
2).int read(char [] chArray):複数の文字を読み取り、文字に格納します配列内。
戻り値は、読み取られた文字の「数」です。

public static void main(String[] args) throws IOException {
    FileReader in = new FileReader("demo03.txt");
    //一次读取一个字符
    /*int c = 0;
    while ((c = in.read()) != -1) {
        System.out.println("读取的字符:" + (char)c);
    }*/
    
    //一次读取一个字符数组
    char[] chArray = new char[2];
    int len = 0;
    while ((len = in.read(chArray)) != -1) {
        //可以将一个字符数组的一部分转换为String
        String str = new String(chArray,0,len);
        System.out.println(str);
    }
    in.close();
}

文字ストリームとバイトストリームの変換

変換ストリームの機能:

1.これは、文字ストリームとバイトストリーム間のブリッジです
。2.読み取られたバイトデータ
、指定されたエンコーディングを介して文字変換できます。3 .読み取られた文字データは、指定されたエンコーディングを介してバイトに変換できます。

いつ変換ストリームを使用するのですか?
1.バイトと文字の間の変換アクションがある場合;
2.ストリーム操作のデータをエンコードまたはデコードする必要がある場合。
3.特定のオブジェクトマニフェスト:
InputStreamReader:バイトから文字へのブリッジ
OutputStreamWriter:文字からバイトへのブリッジ
これらの2つのストリームオブジェクトは文字システムのメンバーであり、変換効果があり、それ自体が文字ストリームであるため、構築されます。場合によっては、バイトストリームオブジェクトを渡す必要があります。

オリジナルの記事を8件公開 Likes0 Visits 38

おすすめ

転載: blog.csdn.net/FearSun/article/details/105389794