Java IOのFileReaderとFileWriterのファイルの読み書きとマルチレベルフォルダの作成


package pack.java.io;

import java.io.BufferedInputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
import java.io.InputStream;

import sun.misc.Resource;

public class CreateFileDemo {
	/**
	 *      ;
	 * @param args
	 */
	public static void main(String[] args) {
		//System.getProperty("user.dir")           ;  ,          ;
		String file=System.getProperty("user.dir")+"\\src"+File.separator+"\\myFile.txt";
		File writeFile=new File("C:\\iodemo\\File\\");
		System.out.println("      :"+writeFile.getParent());
		
		//       ,     ;
		if(!writeFile.exists()){
			//mkdirs       , mkdir       ;
			writeFile.mkdirs();
		}
		FileReader fileReader  = null;
		FileWriter fileWrite  = null;
		try {
			//fileInputStream=new FileInputStream(file);
			//fileOutputStream = new FileOutputStream(new File(writeFile.getPath()+"\\writeFile.txt"));
			fileReader = new FileReader(file);
			int c=0;
			try {
				fileWrite = new FileWriter(writeFile.getPath()+"\\writeFile.txt");
				while ((c=fileReader.read())!=-1) {
					//   C:\\iodemo\\File\\test    writeFile.txt   ;
					fileWrite.write(c);
				}
				System.out.println("       :"+writeFile.getPath());
			} catch (IOException e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			}
		} catch (FileNotFoundException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}finally{
				try {
					//     :         ;
					if(fileReader!=null){
						fileReader.close();
					}
					if(fileWrite!=null){
						fileWrite.close();
					}
				} catch (IOException e) {
					// TODO Auto-generated catch block
					e.printStackTrace();
				}
		}
	}
	
}

 
 
 FileInputStreamクラス1)FileInputStreamクラス紹介:バイト単位のストリーム処理.バイトシーケンス:バイナリデータ.符号化に関係なく、乱符号化の問題は存在しない.FileInputStreamクラスの主な方法は、Read()、read(byte[]b)、read(byte[],int off,int len)、available();2)FileInputStreamクラスとFileReaderクラスの違い:2つのクラスの構造関数の形式とパラメータは同じで、パラメータはFileオブジェクトまたはパスを表すStringで、それらはいったいどんな違いがありますか?FileInputStream:バイトストリームで読み込む;FileReader:ファイルを文字ストリームに変換して読み込む;InputStreamは、テキストの読み取りではなくバイトストリームの読み取りを提供します.これはReaderクラスとの根本的な違いです.Readerで読み込んだのはchar配列かString、InputStreamで読み込んだのはbyte配列です.Readerクラスとそのサブクラスが提供する文字ストリームの読み取りchar、inputStreamとそのサブクラスがバイトストリームの読み取りbyteを提供するので、FileReaderクラスはファイルを文字ストリームの方式で読み取り、FileInputStreamはバイトストリームの方式でファイルを読み取る.