FileReader和FileWriter
FileReader和FileWriter
FileReader字符输入流
按照字符来操作文件
构造方法:
new FileReader(File/String); //参数为文件对象或者文件路径
常用方法:
- read();//每次读取单个字符,返回值为该字符,到未见末尾则为一
- read(char[] buff);批量读取字符到数组,返回值为读取的字符数,到文件尾返回-1
关于String类
- new String(char[] a);//将char[]转换为String
- new String(char[], int,int);//将char[]数组的指定位置字符转换为字符串
package com.cn.file;
import org.junit.Test;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.IOException;
public class MyFileReader {
@Test
public void test(){
String filePath="F:\\y\\file02.txt";
char[] buf=new char[5];
int data=0;
FileReader fileReader=null;
try {
fileReader=new FileReader(filePath);
while ((data=fileReader.read())!=-1) //读取方式一
{
System.out.print((char) data);
}
System.out.println();
System.out.println("换行啦!!!!!!!!!");
/*
while ((data=fileReader.read(buf))!=-1) //读取方式二
{
System.out.print(new String(buf,0,data));
}
System.out.println("值:"+fileReader.read(buf));
*/
System.out.println("值:"+fileReader.read());
} catch (IOException e) {
e.printStackTrace();
}
finally {
if (fileReader!=null){
try {
fileReader.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
}
FileWriter字符输出流
用于文件内容的输入操作
构造方法:
new FileWriter(File/String);//参数为文件类对象或者文件路径,覆盖模式写入
new FileWriter(File/String,true);//追加模式写入
常用方法:
- write(int); //写入单个字符
- write(char[]); //写入整个数组
- write(char[], int, int ); //写入数组指定位置,第一个int参数为起始位置,第二个是从起始位置后的写入长度
- write(String);//写入整个字符串
- write(String,int,int); //写入字符串指定位置的内容到文件中
注:
FileWriter使用写入后,必须使用关闭(close())或者刷新(flush())方法,否则写入不到指定文件
package com.cn.file;
import org.junit.Test;
import java.io.FileWriter;
import java.io.IOException;
public class MyFileWriter {
@Test
public void test(){
String filePath="F:\\y\\file03.txt";
FileWriter fileWriter=null;
try {
fileWriter=new FileWriter(filePath,true);
//加true为追加写入,不加为覆盖写入
fileWriter.write('A');//写入单个字符
fileWriter.write("你好");//写入整个字符串
fileWriter.write("你好世界".toCharArray(),0,2);//写入指定位置的字符数组
fileWriter.write("你好世界",0,2);//写入指定位置的字符串
fileWriter.flush();//刷新缓存,将上面的内容写入
} catch (IOException e) {
e.printStackTrace();
}finally {
if (fileWriter!=null){
try {
fileWriter.close();//也会调用flush()
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
}
朋友和酒,少年和诗,路和远方。