一、介绍
Java提供了多种方法读取文件,其中FileReader是最基础的一种。FileReader可以读取字符流文件,并以字符的形式输出。下面将介绍如何使用FileReader读取文件内容。
二、读取文件的方法
可以使用Java自带的FileReader类来读取文件内容。需要先创建一个FileReader对象,并使用该对象从文件中读取字符。
try {
FileReader reader = new FileReader("file.txt");
int character;
while ((character = reader.read()) != -1) {
System.out.print((char)character);
}
reader.close();
} catch (IOException e) {
e.printStackTrace();
}
该代码会读取file.txt文件中所有的字符,并在控制台上输出。需要注意,FileReader会读取字符,而不是读取字节。因此,对于含有中文的文件,FileReader无法正确读取。
三、文件编码问题
对于含有中文的文件,需要注意文件编码问题。如果文件编码为UTF-8,则需要使用InputStreamReader将字节流转换为字符流,并指定字符集为UTF-8:
try {
FileReader reader = new FileReader(new InputStreamReader(new FileInputStream("file.txt"), "UTF-8"));
int character;
while ((character = reader.read()) != -1) {
System.out.print((char)character);
}
reader.close();
} catch (IOException e) {
e.printStackTrace();
}
如果文件编码为GBK,则需要将字符集指定为GBK:
try {
FileReader reader = new FileReader(new InputStreamReader(new FileInputStream("file.txt"), "GBK"));
int character;
while ((character = reader.read()) != -1) {
System.out.print((char)character);
}
reader.close();
} catch (IOException e) {
e.printStackTrace();
}
四、读取指定长度的文件内容
有时候需要按指定长度读取文件内容,而非全部读取。可以使用FileReader的read(char[] cbuf, int off, int len)方法,该方法将文件内容读取到一个长度为len的字符数组cbuf中:
try {
FileReader reader = new FileReader("file.txt");
char[] cbuf = new char[1024];
int len;
while ((len = reader.read(cbuf, 0, cbuf.length)) != -1) {
System.out.print(new String(cbuf, 0, len));
}
reader.close();
} catch (IOException e) {
e.printStackTrace();
}
五、结论
以上是使用Java FileReader读取文件内容的几种方法。需要注意的是,在使用FileReader读取文件时,需要注意文件编码问题。
原创文章,作者:小蓝,如若转载,请注明出处:https://www.506064.com/n/187204.html
微信扫一扫
支付宝扫一扫