InputStreamReader
构造方法
InputStreamReader(InputStream in)
创建一个使用默认字符集的 InputStreamReader
InputStreamReader(InputStream in, Charset cs)
创建使用给定字符集的 InputStreamReader
成员方法
略
使用
//创建InputStreamReader对象
InputStreamReader inputStreamReader= new InputStreamReader(new FileInputStream("isr.txt"));
//一次读取一个字符
int ch = 0;
while ((ch = inputStreamReader.read())!=-1) {
System.out.print((char)ch);
}
//一次读取一个字符数组
char[] cs=new char[1024];
int length=0;
while ((length=isr.read(cs))!=-1) {
System.out.println(new String(cs, 0, length));
}
//释放资源
inputStreamReader.close();
OutputStreamWriter
构造方法
OutputStreamWriter(OutputStream out)
创建使用默认字符编码的 OutputStreamWriter
OutputStreamWriter(OutputStream out, Charset cs)
创建使用给定字符集的 OutputStreamWriter
成员方法
void close()
关闭此流,但要先刷新它
关闭之后,流对象不可继续使用
void flush()
刷新该流的缓冲
把未填满缓冲区的数据写入到目的地文件上,刷新后,流对象可继续使用
看情况添加
使用
//创建对象
OutputStreamWriter outputStreamWriter=
new OutputStreamWriter(new FileOutputStream("osw.txt"),"UTF-8");
//写数据
outputStreamWriter.write("中国您好");
//flush()
//outputStreamWriter.flush();
//释放资源
outputStreamWriter.close();
BufferedWriter
成员方法
public BufferedWriter(Writer out)
创建一个使用默认大小输出缓冲区的缓冲字符输出流
public void write(String str)throws IOException写入字符串
参数:str - 要写入的字符串
使用
BufferedWriter bufferedWriter= new BufferedWriter(new FileWriter("bw.txt"));
bufferedWriter.write("我ai中国");
bufferedWriter.write("ni");
bufferedWriter.write("好吗");
bufferedWriter.close();
BufferedReader
从字符输入流中读取文本,缓冲各个字符,从而实现字符、数组和行的高效读取
可以指定缓冲区的大小,或者可使用默认的大小。大多数情况下,默认值就足够大了
构造方法
public BufferedReader(Reader in)
创建一个使用默认大小输入缓冲区的缓冲字符输入流
使用
BufferedReader bufferedReader = new BufferedReader(new FileReader("bw.txt"));
// 一次读取一个字符
int ch = 0;
while ((ch=bufferedReader.read())!=-1) {
System.out.print((char)ch);
}
// 一次读取一个字符数组
char[] chs = new char[1024];
int length = 0;
while ((length = bufferedReader.read(chs)) != -1) {
System.out.print(new String(chs, 0, length));
}
bufferedReader.close();
字符缓存流的特殊方法
BufferedReader
public String readLine() throws IOException
读取一个文本行
通过下列字符之一即可认为某行已终止:换行 (’\n’)、回车 (’\r’) 或回车后直接跟着换行
返回:包含该行内容的字符串,不包含任何行终止符,如果已到达流末尾,则返回 null
BufferedWriter
public void newLine() throws IOException
写入一个行分隔符
行分隔符字符串由系统属性 line.separator 定义,并且不一定是单个新行 (’\n’) 符
例如
public static void main(String[] args) throws IOException {
write();
read();
}
public static void write() throws IOException{
//创建字符缓冲输出对象
BufferedWriter bufferedWriter = new BufferedWriter(new FileWriter("bw2.txt"));
for (int i = 0; i < 10; i++) {
bufferedWriter.write("hello"+i);
bufferedWriter.newLine();//根据系统来决定换行符
bufferedWriter.flush();
}
bufferedWriter.close();
}
public static void read() throws IOException{
BufferedReader bufferedReader = new BufferedReader(new FileReader("bw2.txt"));
String line = null;
while ((line=bufferedReader.readLine())!= null) {
System.out.println("line: "+line);
}
}
复制:
BufferedReader bufferedReader= new BufferedReader(new FileReader("a.txt"));
BufferedWriter bufferedWriter= new BufferedWriter(new FileWriter("d.txt"));
String line = null;
while ((line = bufferedReader.readLine())!=null) {
bufferedWriter.write(line);
bufferedWriter.newLine();
bufferedWriter.flush();
}
bufferedReader.close();
bufferedWriter.close();
使用转换流有些繁琐,Java提供简单的类
FileReader
构造方法
public FileReader(File file) throws FileNotFoundException
在给定从中读取数据的 File 的情况下创建一个新 FileReader
FileWriter
构造方法
public FileWriter(File file) throws IOException
根据给定的 File 对象构造一个 FileWriter 对象
使用
//创建FileReader对象
FileReader fileReader= new FileReader("a.txt");
//创建FileWriter对象
FileWriter fileWriter= new FileWriter("b.txt");
//一次一个字符数组
char[] chs = new char[1024];
int length = 0;
while ((length=fileReader.read(chs))!= -1) {
fileWriter.write(chs, 0, length);
fileWriter.flush();
}
//释放资源
fileReader.close();
fileWriter.close();