目录
FileReader:专门用于读取文件数据的Reader子类对象。
int read():读取单个字符。返回值:作为整数读取的字符,范围在 0 到 65535 之间 (0x00-0xffff),如果已到达流的末尾,则返回 -1。
示例
public static void main(String[] args)throws IOException{
// 创建一个文件读取流对象,和指定名称的文件相关联。
// 要保证该文件是已经存在的,如果不存在,会发生异常FileNotFoundException(该文件找不到异常)。
FileReader fr = new FileReader("demo.txt"); // 读取当前目录下的文件
// 调用读取流对象的read()方法
// read():一次读一个字符,而且会自动往下读。
/*while(true){
int ch=fr.read();
if(ch==-1)
break;
System.out.println("ch="+(char)ch);
}*/
// 简写方式
int ch=0;
while((ch=fr.read())!=-1){
System.out.print((char)ch);
}
fr.close(); // 关闭字符读取流
}
注意:要保证要读取的文件是已经存在的,如果不存在,会发生异常FileNotFoundException(该文件找不到异常)。
将字符读入数组
int read(char[] cbuf):将字符读入数组。返回值:读取的字符数,如果已到达流的末尾,则返回 -1。
示例
public static void main(String[] args)throws IOException{
FileReader fr=new FileReader("demo.txt");
// 定义一个字符数组,用于存储读到字符。
// 该read(char[])返回的是读到字符个数。
char[] buf=new char[1024];
int num=0;
while((num=fr.read(buf))!=-1){
System.out.println(new String(buf,0,num));
}
fr.close(); // 关闭字符读取流
}
读取.java文件,打印在控制台
public static void main(String[] args)throws IOException{
FileReader fr=new FileReader("CalendarDemo.java"); // 当前目录下的文件,也可以指定别的路径下的文件
char[] buf=new char[1024];
int num=0;
while((num=fr.read(buf))!=-1){
System.out.print(new String(buf,0,num)); // 不使用println():当前规定大小字符数组打印完,再重新读取文件内容时,防止换行
}
fr.close();
}