java读取文件内容到字符串
使用的类:BufferedReader,继承Reader类
主要方法:
void |
close () 关闭该流。 |
void |
mark (int readAheadLimit) 标记流中的当前位置。 |
boolean |
markSupported () 判断此流是否支持 mark() 操作(它一定支持)。 |
int |
read () 读取单个字符。 |
int |
read (char[] cbuf, int off, int len) 将字符读入数组的某一部分。 |
String |
readLine () 读取一个文本行。 |
boolean |
ready () 判断此流是否已准备好被读取。 |
void |
reset () 将流重置为最新的标记。 |
long |
skip (long n) 跳过字符。 |
主要用到readLine方法来逐行文本内容
程序实例:
public void fileRead() throws Exception { File file = new File("D:\\test.txt");//定义一个file对象,用来初始化FileReader FileReader reader = new FileReader(file);//定义一个fileReader对象,用来初始化BufferedReader BufferedReader bReader = new BufferedReader(reader);//new一个BufferedReader对象,将文件内容读取到缓存 StringBuilder sb = new StringBuilder();//定义一个字符串缓存,将字符串存放缓存中 String s = ""; while ((s =bReader.readLine()) != null) {//逐行读取文件内容,不读取换行符和末尾的空格 sb.append(s + "\n");//将读取的字符串添加换行符后累加存放在缓存中 System.out.println(s); } bReader.close(); String str = sb.toString(); System.out.println(str ); }
遇到问题:
while循环中,直接使用(bReader.readLine()!=null),循环体内用s=bReader.readLine()赋值,
输出发现跳行获取的,每调用一次bReader.readLine()就会读取一行,所以造成跳行显示。
版权声明:本文为lfzw20原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。