JAva IOのファイル入出力ストリーム

2841 ワード

JAva IOのファイル入出力ストリーム
         プログラムの実行中、ほとんどのデータはメモリに含まれますが、プログラムが閉じるとメモリのデータは消えます.データを永続的に保存するには、ファイル入出力ストリームを介してファイルに連絡し、必要なデータをファイルに格納する必要があります.
1.  FileInputStreamクラス
参考ブログ:FileInputStreamクラス
2.  FileOutputStreamクラス
参考ブログ:FileOutputStreamクラス
3.  FileReaderクラスとFileWriterクラス
漢字が2バイトを占有しているため、FileInputStreamを使用してファイルからデータを読み取ることとFileOutputStreamを使用してファイルにデータを書き込むことで、ファイルの文字化けしが発生する可能性があります.Javaで採用されているUnicode文字でUnicodeでは漢字が1文字と見なされるため、FileInputStreamを使用してファイルからデータを読み取ることは避けられます.
FileReaderとFileWriterは、FileInputStreamとFileOutputStreamの2つのバイトストリームに対応する2つの文字ストリームであり、それぞれReaderとWriteのサブクラスである.
 
FileReaderの構造方法は次のとおりです.
Ø FileReader(String name):指定した名前nameを使用してFileReaderオブジェクトを作成します.
Ø  FileReader(File file):Fileオブジェクトを使用してFileReaderオブジェクトを作成します.
Ø  
FileWriterの構造方法は次のとおりです.
Ø FileWriter(String name):指定した名前nameを使用してFileWriterオブジェクトを作成します.
Ø  FileWriter(File file):Fileオブジェクトを使用してFileWriterオブジェクトを作成します.
Ø FileWriter(String file Name,boolean append):指定した名前のnameを使用してFileWriterオブジェクトを作成します.2番目のパラメータがtrueの場合、ファイルの先頭ではなく、バイトをファイルの末尾に書き込みます.
Ø FileWriter(File file,booleanappend):Fileオブジェクトを使用してFileWriterオブジェクトを作成します.2番目のパラメータがtrueの場合、ファイルの先頭ではなくファイルの末尾にバイトを書き込みます.
 
FileReaderストリーム順序の読み取りファイルは、ストリームを閉じない限り、readメソッドを呼び出すたびに、ソースの末尾またはストリームが閉じられるまで、ソース内の残りのコンテンツを順次読み出す.FileReaderの方法はFileInputStreamの方法を参照できます.
 
FileWriterストリーム順序の書き込みファイルは、ストリームを閉じない限り、writeメソッドを呼び出すたびにストリームが閉じられたり異常が発生するまで順番にソースにコンテンツを書き込む.FileWriterの一般的なメソッドは、Java IOの入出力ストリームにおけるWriterクラスの一般的なメソッドを参照してください.
 
例:キーボード入力データをFileWriterでCディスクのtest.txtに書き込み、FileReaderでコンソールに出力します.
コードは次のとおりです.
import java.io.File;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
import java.util.Scanner;
public class FileDemo {
    public staticvoidmain(String[] args){
        File file;
        char[] data=newchar[512];
        int b;
        try {
            file=new File("C:"+File.separator+"test.txt");
            FileWriter writer=new FileWriter(file);
            Scanner sc=new Scanner(System.in);
            System.out.println("       :");
            String str=sc.nextLine();
            writer.write(str);
            writer.close();
            FileReader reader=new FileReader(file);    
            while((b=reader.read(data,0,512))!=-1){
                String s=new String(data,0,b);
            System.out.println(s);
            }
            reader.close();
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}

結果:
テスト内容を入力してください:
皆さん、こんにちは、これは私が作った個人の総括で、みんなの参考にすることができることを望みます!
皆さん、こんにちは、これは私が作った個人の総括で、みんなの参考にすることができることを望みます!
Cディスクtest.txtファイルの内容は次のとおりです.
皆さん、こんにちは、これは私が作った個人の総括で、みんなの参考にすることができることを望みます!