IOは、フローストリーム第三十七ノードの[Javaの]セクション

フローノードは、現在のプログラムであり、ファイルまたはストリームは、直接ローカルファイル/データネットワーク、直接操作データのためのプログラムに接続されます。フローノードであっFileReaderを、てFileWriter、のFileInputStreamとのFileOutputStream。

FileReaderをとてFileWriter:文字のストリーム:

FileReaderのが一般的な方法:

1、INTは、READ():文字はint型、コンソールへのcharキャストのASCIIコードに対応する戻り、次いで、印刷された場合、読み出しファイルの終わり、および戻り値-1;
2、読むINT(CHAR [ ]データ)、読むために文字の数を返す読み取り文字はデータ配列に格納され、出力が横断することができるが、注意を払うの回数にメソッドの戻り値を横切る等しい、または最後に印刷結果は、問題を抱えている;
3、INTを読み出し(CHAR [] C、オフINT、INT LEN):文字の数が読み戻り、読み出し文字がに格納されているオフ位置len文字から始まります;データアレイ、出力を横断するが、戻り値を通過する回数に注意を払うにしてもよいが、プロセスに等しく、最終的な結果は、問題または印刷される
。JVMはない自動的に近い接続の流れを行います4、公共ボイド閉じる()にIOExceptionがスロー、そのリソースを閉じるには注意を払うようにしてください!

FileWriter共通の方法:

1、ボイド書き込み(INT c)は、単一の文字を書く;
2、ボイドライト(CHAR [] CBUF)書き込まれた文字配列;
3、空隙書き込み(CHAR [] CBUF、オフINT、INT LEN)は、文字列を書き込み一部。;書かれ始め、len文字から
4、無効書き込み(文字列STR)は、文字列を書き込みます;。
。5、無効書き込み(文字列STRは、オフint型、int型のlen)文字列の一部を書き込み、
6、公共のボイド閉じます()IOExceptionがスローされます:JVMは、そのリソースを閉じるには注意を払うにはわからない自動的に閉じ、接続ストリームではありません!
7、てFileWriter(ファイルfile、boolean型のフラグ):フラグ真の質量が追加された場合は、引数を渡さない場合は、虚偽またはパスカバレッジました。

例:コピーのテキストファイル

テストファイル、プロジェクト「Hello.txt」の下で:

张伟:123...
You have no ball!

テストカテゴリ:

package cn.jingpengchong.io;

import java.io.File;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;

public class Test {
    public static void main(String[] args) {
        //1、创建File类对象
        File srcfile = new File("Hello.txt");
        File desfile = new File("Hello-copy.txt");
        //2、创建FileReader/FileWriter类对象
        FileReader reader = null;
        FileWriter writer = null;
        try {
            reader = new FileReader(srcfile);
            writer = new FileWriter(desfile);
            char[] data = new char[5];  //指定一次读取多少个字符
            //3、读入与写出操作
            int read = reader.read(data);
            while (read != -1){
                writer.write(data,0,read);
                //在控制台查看
                for (int i = 0; i < read; i++) {
                    System.out.print(data[i]);
                }
                read = reader.read(data);
            }
            System.out.println("\n复制成功!!!");
        } catch (Exception e) {
            e.printStackTrace();
        } finally {
        	//4、关闭资源
            if(reader != null){
                try {
                    reader.close();
                } catch (IOException e) {
                    e.printStackTrace();
                }
            }
            if(writer != null){
                try {
                    writer.close();
                } catch (IOException e) {
                    e.printStackTrace();
                }
            }
        }
    }
}

結果は以下の通りである:
ここに画像を挿入説明
本プロジェクトの「Hello-copy.txt」ファイルの下で発生します:
ここに画像を挿入説明

バイトストリーム:のFileInputStreamとのFileOutputStream:

FileInputStreamのの一般的な方法:

図1は、INTリード():入力ストリームからデータの次のバイトを読み込み。ストリームの終わりに何バイトが利用可能でないため、到達した場合は、値を返す-1、
2、読む(バイト[]データ)がINT:データはバイト配列にdata.lengthアップバイトのストリームにこの入力から読み取ら。バイトがないので、ストリームの終わりに達した場合は、値-1を返します。そうでなければ、それはバイトの数が実際に整数として読み取る返し;
3、INT読む(バイト[] C、OFF intは、INTがLEN):lenバイトのデータの入力ストリームアップは、バイト配列に読み込まれたストリームに達した場合ためバイトの終わりで利用できない、値-1が返されます。それ以外の場合は、整数の数は実際に読み込まれたバイトを返し、
4、公共のボイド閉じる()はIOExceptionをスローします。JVMがない自動的に閉じるフローの接続を行い、それが近いリソースことに注意しなければなりません!

FileOutputStreamの一般的な方法:

1、ボイド書き込み(INT B)は単一バイトの書き込み;
2、空隙書き込み(バイト[] CBUF)バイト配列
書き込まれたバイト3、空隙書き込み(バイト[] CBUF、オフINT、INT LEN)。アレイの一部。;最初からオフ、lenバイトを書き込んだ
。JVMがない自動的に閉じるフローの接続を行い、それが近いリソースことに留意しなければならない:4、公共のボイド閉じる()することにIOExceptionがスローされます!

例:「02-動画.AVI」と「01-動画.AVI」ビデオファイルがデスクトップにコピーして、タイミング
package cn.jingpengchong.io;

import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;

public class Test {
    public static void main(String[] args) {
        //1、创建File类对象
        File srcfile = new File("C:\\Users\\lenovo\\Desktop\\01-视频.avi");
        File desfile = new File("C:\\Users\\lenovo\\Desktop\\02-视频.avi");
        //2、创建FileReader/FileWriter类对象
        FileInputStream reader = null;
        FileOutputStream writer = null;
        try {
            reader = new FileInputStream(srcfile);
            writer = new FileOutputStream(desfile);
            byte[] data = new byte[1024];
            //3、读入与写出操作
            long start = System.currentTimeMillis();
            int read = reader.read(data);
            while (read != -1){
                writer.write(data,0,read);
                read = reader.read(data);
            }
            long end = System.currentTimeMillis();
            System.out.println("复制成功!!!用时(毫秒):"+(end-start));
        } catch (Exception e) {
            e.printStackTrace();
        } finally {
        	//4、关闭资源
            if(reader != null){
                try {
                    reader.close();
                } catch (IOException e) {
                    e.printStackTrace();
                }
            }
            if(writer != null){
                try {
                    writer.close();
                } catch (IOException e) {
                    e.printStackTrace();
                }
            }
        }
    }
}

結果は以下の通りであります:
ここに画像を挿入説明

公開された128元の記事 ウォン称賛17 ビュー2744

おすすめ

転載: blog.csdn.net/qq_43705275/article/details/103988882