编程要求:
在C:盘根目录下创建纯文本文件 test.txt,并键入下列内容:
呦呦鹿鸣,食野之蒿。
今夕何夕,见此良人。
桃之夭夭,灼灼其华。
如月之恒,如日之升。
巧笑倩兮,美目盼兮。
琴瑟在御,莫不静好。
投我以桃木,报之以琼瑶。
伐木丁丁,鸟鸣嘤嘤。出自幽谷,迁于乔木。
编写程序,读入上述文件,并把内容在控制台上输出。
编码解析:
- 首先在相应目录下创建相应的文件,但要注意创建文件的格式要与代码中的相同。(这里不懂是什么关系没事,看到下面代码就懂了)
笔者使用的是EditPlus,可以直接设置文件的编码格式
- 我的文件的路径:C:\Users\10593\test.txt(这个是自己放的位置)
实现代码
import java.io.*;
public class JavaIO {
public static void main(final String[] args){
FileInputStream reader = null;
BufferedReader bufferedReader = null;
String line = null;
InputStreamReader isr = null;
try {
String filePath = "C:\\Users\\10593\\test.txt";
//至于这里为什么要双斜杠见下文
File file = new File(filePath);
reader = new FileInputStream(file);
isr = new InputStreamReader(reader,"UTF-8");
//这里的UTF-8就是前文提到的文件的编码格式,要与你的文件的编码格式相同,不然会出现乱码
//标准的字节流,按照一定的编码格式,转换为字符流。如果读取字符流的时候,使用的是系统默认的编码格式,(微软的一般是GBK)
//则直接使用fileReader和fileWriter。如果需要指定编码格式,则使用inputStreamReader和OutputStreamWrite
bufferedReader = new BufferedReader(isr);
while ((line = bufferedReader.readLine())!= null){
System.out.println(line);
}
}catch (FileNotFoundException e){
System.err.println(e.getMessage());
e.printStackTrace();
}catch (IOException e) {
System.err.println(e.getMessage());
e.printStackTrace();
}finally {
try {
reader.close();
} catch (Exception e) {
e.printStackTrace();
}
}
}
}
补充:
1.上传文件路径为什么要双斜杠?
解析:由于我们是把路径当成是一个字符串传进去的,在字符串中斜杠“\”被当做转义字符识别,所以要用“\(这里是两个斜杠,可能显示出来是一个)”才能表示一个斜杠。
2.要指定文件格式吗?
解析: 标准的字节流,按照一定的编码格式,转换为字符流。如果读取字符流的时候,使用的是系统默认的编码格式,(微软的一般是GBK),则直接使用fileReader和fileWriter。如果需要指定编码格式,则使用inputStreamReader和OutputStreamWrite 。
来源:oschina
链接:https://my.oschina.net/u/4398976/blog/4255221