IO-字符流-FileReader

简介:

FileReader 读数据

构造方法:

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

成员方法:

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

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


输入流读文件的一般步骤:

1.创建输入流对象

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

3.释放资源

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

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
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.上个范例是把文本内容读取出来打印到公屏上,如果是写入到其他文件,是不是就变成复制了呢

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
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();
}
}


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

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
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();
}
}

在这里什么时候用到字符流呢,一般情况下能够使用系统记事本打开并阅读里面的内容的,我们采用字符流,

本文转自xinsz08の平行时空博客51CTO博客,原文链接http://blog.51cto.com/xinsz08/1941490如需转载请自行联系原作者

维度2018
相关文章
|
8月前
Io转换流
Io转换流
32 0
|
4月前
|
移动开发 Java Linux
【IO】JavaIO流:字节流、字符流、缓冲流、转换流、序列化流等
【IO】JavaIO流:字节流、字符流、缓冲流、转换流、序列化流等
35 0
|
6月前
|
存储 移动开发 Java
|
6月前
|
存储 移动开发 Java
|
10月前
|
存储 移动开发 Java
Java中的IO(字节流和字符流)
Java中的IO(字节流和字符流)
|
10月前
|
存储 缓存 Java
【Java I/O 流】文件字符输入输出流:FileReader 和 FileWriter
本篇文章主要讲述“文件字符输入流”和“文件字符输出流”两个类的使用,并列举了一些读写案例,帮助学习。
352 0
|
设计模式 Java API
Java IO(2)—缓冲字符流以及IO中的装饰者模式
详细介绍了Java IO中的缓冲字符流BufferedWriter、BufferedReader、LineNumberReader的使用方式,以及Java IO中的装饰者模式。
84 0
|
Java
java IO之字符输入与输出流
java IO之字符输入与输出流
82 0
|
Java
Java提高篇(二):IO字节流、字符流和处理流
在我们的Java语言当中,通常会有对文件进行读写,因此我们引入java的IO类来进行文件的读写。 一.字节流 下面是一个字节流的实例: 1 import java.io.*; 2 public class IO { 3 public static void main(String[] args) { 4 System.
1006 0