字符流是可以直接读取字符的IO流
字符流读取字符,就要先读去到字节数据,然后转为字符,如果要写出字符,需要把字符转为字节再写出
字符流的两个抽象父类:字符输出流:Writer 和字符输入流:Reader
字符输入流(Reader)
抽象类是表示字节输入流的所有类的超类,可以读取字节信息到内存中,它定义了字节输入流的基本共性功能方法。
public void close():关闭此输入流并释放与此流相关联的任何系统资源。
public int read():从输入流读取一个字符。
public int read(char[ ] b):从输入流中读取一些字符,并将它们储存到字符数组b中
字符输出流(Writer)
void writer (int c) : 写入单个字符
void write (char[ ] b) : 写入字符数组
void writer (String str , int off , len ) : 写入字符串的某一部分,off字符串的开始索引,len写的字符个数。
abstract void writer (char [ ] b,int off , len ) : 写入字符数组的某一部分,off字符串的开始索引,len写的字符个数。
void writer (String str ) : 写入字符串。
void flush ( ) : 刷新该流的缓冲。
void close ( ) : 关闭此流,但要先刷新它
import java.io.File;
import java.io.FileWriter;
import java.io.IOException;
import java.io.Writer;
public class WriterTest07 {
public static void main(String[] args) throws IOException {
File f2=new File("d:/c.txt");
if (!f2.exists()){
f2.createNewFile();
}
//定义一个字符输出流,向f2文件写入内容
Writer out=new FileWriter(f2);
out.write(97);
out.write((int)'中');
char[] ch={'w','s','j','g','c','y'};
out.write(ch,0,2);
out.write("飞天肉饼");
out.write("abcdef",0,3);
out.flush();//字符输出流有缓冲区的概念,需要刷新缓冲区才更新到硬盘
out.close();
}
}
FileReader (File file) : 创建一个新的FileReader,给定要读取的File对象。
FileReader (String fileName) : 创建一个新的FileReader,给定要读取的文本的名称。
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileReader;
public class FileReaderTest {
public static void main(String[] args) throws FileNotFoundException {
//使用file对象创建流对象
File file=new File("a.txt");
FileReader fileReader=new FileReader(file);
//使用文件名称创建流对象
FileReader fileReader1=new FileReader("b.txt");
}
}