java中的filereader_JAVA中的IO流-FileReader类

FileReader类: 用于读取字符流的一个类

构造方法:

FileReader(File file)

创建一个新的 FileReader ,给出 File读取。

FileReader(FileDescriptor fd)

创建一个新的 FileReader ,给定 FileDescriptor读取。

FileReader(String fileName)

创建一个新的 FileReader ,给定要读取的文件的名称。

方法:

.read()

读取一个字符

.read(char[] cbuf)

读取一个字符串

.......

很多重载的方法

.close()

关闭流

.....

还有可以看API

例子: 这里把异常抛出,不进行捕捉了 demo.txt 文本文件中放着abcde

import java.io.FileReader;

import java.io.IOException;

public class Demo {

public static void main(String[] args) throws IOException {

FileReader fr = new FileReader("demo.txt");

int ch = fr.read(); //读取一个

System.out.println(ch); 输出

}

}

运行结果: 97

如果要让它输出原本的a,则需要进行强制类型转换

System.out.println((char)ch);

运行结果: a

如果我们想要它全部输出的话,可以用循环

import java.io.FileReader;

import java.io.IOException;

public class Demo {

public static void main(String[] args) throws IOException {

FileReader fr = new FileReader("demo.txt");

int ch= 0;

while((ch = fr.read()) != -1) {

System.out.print((char)ch); //输出

}

}

}

运行结果:

利用数组进行存储再进行读取 例子:

import java.io.FileReader;

import java.io.IOException;

public class Demo {

public static void main(String[] args) throws IOException {

FileReader fr = new FileReader("demo.txt");

char[] ch = new char[3];

int len = 0;

len = fr.read(ch);

System.out.println(len+":"+new String(ch));

}

}

运行结果:

如果我们多次取值呢?

import java.io.FileReader;

import java.io.IOException;

public class Demo {

public static void main(String[] args) throws IOException {

FileReader fr = new FileReader("demo.txt");

char[] ch = new char[3];

int len = 0;

len = fr.read(ch);

System.out.println(len+":"+new String(ch));

len = fr.read(ch);

System.out.println(len+":"+new String(ch));

len = fr.read(ch);

System.out.println(len+":"+new String(ch));

}

}

运行结果:  为什么会这样子呢? 我们第一次的时候数组是空的 于是把abc放进去之后 len = 3

后面继续读取 因为后面已经没有空间了,所以会重头开始 于是len = 2

因为第三次读取因为已经到底了 len = -1 告知错误 所以还是输出原来的

所以我们可以重新写一个输出 例子:

import java.io.FileReader;

import java.io.IOException;

public class Demo {

public static void main(String[] args) throws IOException {

FileReader fr = new FileReader("demo.txt");

char[] ch = new char[3];

int len = 0;

while((len = fr.read(ch)) != -1) {

System.out.println(len+":"+new String(ch,0,len));

}

}

}

运行结果:

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值