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はバイトストリームの方式でファイルを読み取る.