IO-字符流-FileReader

FileReader 读数据java

构造方法:数组

FileReader(String fileName) 传递要读取的文件名称ide

成员方法:spa

int read() 读取单个字符并返回对象

int read(char[] cbuf) 一次读取一个字符数组的数据,返回的是实际读取字符的个数.资源


输入流读文件的通常步骤:it

1.建立输入流对象io

2.调用输入流对象的对数据方法class

3.释放资源效率

举例:打印文件中的内容到公屏上,一次读取一个字符

import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.IOException;
public class DemoFileReader {
public static void main(String[] args) throws IOException {
// 建立输入流对象
FileReader fr = new FileReader("a.txt");
int ch;
// 调用输入流方法读取数据的方法
/*
* ch != -1 ch=fr.read(); 故:(ch = fr.read()) != -1
*/
//
while ((ch = fr.read()) != -1) {
System.out.println((char) ch);
}
// 释放资源
fr.close();
}
}



注意: a.txt必须存在,若是不存在会报系统找不到文件异常


2.上个范例是把文本内容读取出来打印到公屏上,若是是写入到其余文件,是否是就变成复制了呢

import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
public class DemoCopyFile {
public static void main(String[] args) throws IOException {
//建立输入流对象
FileReader fr = new FileReader("a.txt");
//建立输出流对象
FileWriter fw = new FileWriter("Copya.txt");
int ch;
while ((ch = fr.read()) != -1) {
fw.write(ch);
}
//释放资源
fw.close();
fr.close();
}
}


上面的例子是一次读写一个字符复制文本文件,效率比较低.接下来咱们看看 成员方法中一次一个字符数组的状况.

public class DemoCopyFile {
public static void main(String[] args) throws IOException {
//建立输入流对象
FileReader fr = new FileReader("a.txt");
//调用输入流对象读取数据的方法
char[] chs = new char[1024];
int len;
/*while一共作了三件事
* 1.fr.read(chs)将数据读取到数组中
* 2.len=fr.read(chs) 把读取到的有效个数复制给len
* 3.len != -1  判断读取的有效个数是否为-1
*
*/
while((len = fr.read(chs))!= -1){
System.out.println(new String(chs,0,len));
}
fr.close();
}
}

在这里何时用到字符流呢,通常状况下可以使用系统记事本打开并阅读里面的内容的,咱们采用字符流,

相关文章
相关标签/搜索