package IOStream;import org.junit.Test;import java.io.File;
import java.io.FileReader;
import java.io.IOException;public class FileReadWriter {//@Testpublic void testFileReader() {
// fr需要提前声明FileReader fr = null;
// 1.实例化File类的对象,指明要操作的文件try {File file1 = new File("hello.txt");// 2.提供具体的流:(找到管道)fr = new FileReader(file1);// 3.数据的读入
// read()返回读入的一个字符,用int 接受的时ASCII码,如果达到末尾则返回-1
// 方式1:
// int data = fr.read();
// while(data != -1){
// System.out.print((char) data);
// data = fr.read();
// }
// 方式2:int data ;while((data = fr.read())!= -1){System.out.print((char)data);}} catch (IOException e) {e.printStackTrace();} finally {try {if(fr!=null){fr.close();}} catch (IOException e) {e.printStackTrace();}}// 4.流的关闭操作}
}
read()的重载方法:read(char cbuffer[]) 返回的是读入的字符个数
// 对read()操作方法的一个升级:使用read重载方法// read(char[]) 返回每次读入的字符个数,比如helloworld123!,会返回5 5 4 -1@Testpublic void testFileReader2() {
// 1.File类的实例化FileReader fr = null;try {File file = new File("hello.txt");// 2.流的实例化fr = new FileReader(file);
// 3.读入操作
// read(char[]) 返回每次读入的字符个数,比如helloworld123!,会返回5 5 4 -1char[] cbuffer = new char[5];int len ;while((len = fr.read(cbuffer))!=-1){for(int i = 0 ; i < len; i++){System.out.print(cbuffer[i]);}}} catch (IOException e) {e.printStackTrace();} finally {try {
// 4.资源关闭if (fr != null) {fr.close();}} catch (IOException e) {e.printStackTrace();}}}
FileWriter的说明:
package IOStream;
/*
从内存中写出数据到硬盘里
说明:
1.输出操作中File对象可以不存在,会自动创建此文件若存在,在构造器中append:选择true为在后面继续添加,false为覆盖原文件FileWriter(file,true/false)
2.*/
import org.junit.Test;import java.io.File;
import java.io.FileWriter;
import java.io.IOException;public class FileWriterTest {@Testpublic void testFileWriter() throws IOException {
// 1.提供File对象,指明写出的文件File file1 = new File("hello1.txt");// 2.提供FileWriter对象,用于数据的写出FileWriter fw = new FileWriter(file1,false);// 3.写出的操作fw.write("i have a dream!\n");fw.write("you need to have a dream!");// 4.流资源的关闭fw.close();}
}