inputstreamreader的read方法返回的是一个int,代表读取到的数据长度,可以将读取到的数组保存到一个char数组中,然后输出,一般都套用bufferedreader,缓冲流,read方法都方便好用,读取保存到string只需要使用readline。
代码中,先创建控制台输入对象scan,然后建立字节流与文件file连接,用字符流inputstreamreader包装字节流,同时设定字符集,再用bufferedreader类包装,就可以方便的进行读取文件。
写入也是一样,先建立最基础的文件的输出流连接,然后字符流包装,再缓冲bufferedriter类包装。
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.OutputStream;
import java.io.OutputStreamWriter;
import java.util.Scanner;
public class CharRWStreamTest01 {
public static void main(String[] args) {
File file=new File("Text.txt");
File file2=new File("Text1.txt");
Scanner scan=new Scanner(System.in);
try {
InputStream fis=new FileInputStream(file);
InputStreamReader isr=new InputStreamReader(fis, "utf-8");
BufferedReader br=new BufferedReader(isr);
OutputStream os=new FileOutputStream(file2,false);
OutputStreamWriter osw=new OutputStreamWriter(os, "utf-8");
BufferedWriter bw=new BufferedWriter(osw);
String ss;
while((ss=br.readLine())!=null){
bw.write(ss);
bw.write("\n");
}
bw.flush();
br.close();
isr.close();
fis.close();
bw.close();
osw.close();
os.close();
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
}