读取文件内容 ReadLine
在Java IO中,BufferedReader中的readLine()可以每次读取一行输出。对于一个文件,我们可以利用循环将文件内容全部读取出来,也可以读取想要的部分。
import java.io.*;
public class TestReadLine {
public static void main(String[] args) {
try {
BufferedReader reader = new BufferedReader(
new FileReader("F:/HuaGe" + File.separator + "test.txt"));
String str = null;
int n =7; //读取文件7行内容
while(n-- >0){
str = reader.readLine();
System.out.println(str); //对读取信息进行输出打印
}
reader.close();
} catch (Exception e) {
e.printStackTrace();
}
}
}
运行结果如下:
01
ORD20191021103036554010000000001100100
�հ��в��ԣ�
������ϣ�
@author HuaGe
@Data 2019.10.21 10:30:36
原文件内容如下:
01
ORD20191021103036554010000000001100100
空白行测试:
测试完毕!
@author HuaGe
@Data 2019.10.21 10:30:36
@Address ShenZhen GuangDong province
对比原内容可以看出,中文读取输出乱码,解决该问题可以利用InputStreamReader编码读取,选择相应的编码即可正确输出。更改代码如下:
import java.io.*;
public class TestReadLine {
public static void main(String[] args) {
try {
String fileName = "F:/HuaGe" + File.separator + "test.txt"; //文件路径及名称
InputStreamReader isr = new InputStreamReader(new FileInputStream(fileName), "GBK");//编码读取
BufferedReader reader = new BufferedReader(isr);
String str = null;
int n =7; //读取文件7行内容
while(n-- >0){
str = reader.readLine();
System.out.println(str); //对读取信息进行输出打印
}
reader.close();
} catch (Exception e) {
e.printStackTrace();
}
}
}
输出结果如下:
01
ORD20191021103036554010000000001100100
空白行测试:
测试完毕!
@author HuaGe
@Data 2019.10.21 10:30:36
注:File.separator是系统默认的文件分隔符号, 作用相当于 ’ \ ',无论是在windows,linux还是unix系统上,它都能正确的给予表示,保证了在任何系统下不会出错。
扩展:File 类还有:separatorChar,pathSeparatorChar ,pathSeparator 。详情可以百度查询。