目录
一:FileReader字符输入流
1:构造方法
FileReader(File file)
创建一个新的 FileReader ,给出 File读取。
FileReader(String fileName)
创建一个新的 FileReader ,给定要读取的文件的名称。
2:读数据的方法
由于它继承于java.io.InputStreamReader 所以和InputStreamReader有一样的写数据的方法
public int read():一次只读一个字符
public int read(char[] cbuf):一次读取一个字符数组
二:FileWriter字符输出流
1:构造方法
FileWriter(File file)
给一个File对象构造一个FileWriter对象。
FileWriter(File file, boolean append)
给一个File对象构造一个FileWriter对象。
FileWriter(String fileName)
构造一个给定文件名的FileWriter对象。
FileWriter(String fileName, boolean append)
构造一个FileWriter对象,给出一个带有布尔值的文件名,表示是否附加写入的数据。
注意:如果后面为true表示追加到文件,否则就会覆盖原来文件的内容
2:写数据的方法
public void write(int c)一次写一个字符
public void write(char[] cbuf)一次写入一个字符数组
public void write(char[] cbuf,int off,int len)一次写入一个字符数组的一部分
public void write(String str)一次写入一个字符串
public void write(String str,int off,int len)一次写入一个字符串一部分
三:例子
1:字符输入流例子
package day31;
import java.io.FileReader;
public class Test3 {
public static void main(String[] args) throws Exception{
//创建字符输入流
FileReader fr = new FileReader("a.txt");
//一个字节一个字节读取数据
int l = 0;
while((l=fr.read())!=-1){
System.out.print((char)l);//转为char型
}
//关闭资源
fr.close();
}
}
package day31;
import java.io.FileReader;
public class Test3 {
public static void main(String[] args) throws Exception{
//创建字符输入流
FileReader fr = new FileReader("a.txt");
//读取一个字符数组
int l1=0;
char[] c = new char[1024];
while((l=fr.read(c))!=-1){
String s = new String(c, 0, c.length);//字符数组转为字符串
System.out.println(s);
}
//关闭资源
fr.close();
}
}
如果不强转为char就会变成如图:
2:字符输出流例子
package day31;
import java.io.FileWriter;
public class Test4 {
public static void main(String[] args) throws Exception{
//创建输出流对象传入的是文件名,也可以传入一个File对象
FileWriter fw = new FileWriter("t.txt");
//一次写入一个字符
fw.write('a');
fw.write(99);
//一次写入一个字符数组
char[] c={'a','a','2','9'};
fw.write(c);
//一次写入一个字符数组一部分
fw.write(c,0,2);
//一次写入一个字符串
fw.write("helloword");
//一次写入字符串一部分
fw.write("hello world",0,5);
//关闭资源
fw.close();
}
}