标签:编码 null 读取 文件 文本文件 斜杠 reader 格式 设计模式
编程要求:
在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 。
标签:编码,null,读取,文件,文本文件,斜杠,reader,格式,设计模式 来源: https://blog.csdn.net/weixin_45791445/article/details/105736310
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。