Java怎样读取txt文件的内容
这个并不困难,大概的步骤是这样的:
TXT是一个文本文件,一般采用流的方式读取:
java提供了一个FileInputStream,我们可以直接以文件路径构造这个流,也可以以文件对象构造他,如:FileInputStream fin = new FileInputStream("d:/aa.txt");
然后使用这个流就可以直接读取到文件了,但是这个时候读取到的内容是int类型的数值,所以需要进一步的处理,我们把fin外面包上一个InputStreamReader,就变成了这样:
InputStreamReader reader = new InputStreamReader(fin);
但是这一个reader读取文本并不是很方便,有一点要注意,在这一个reader的构造方法上面可以设定字符编码;接下来,使用这个reader构造BufferedReader,BufferedReader拥有一个名为readLine的方法,可以读取一整行的文本,作为字符串返回,因此用起来会比较方便。
BufferedReader buffReader = new BufferedReader(reader);
接下来就是借助循环来读取文件中的字符串了,然后,去做你想做的事情好了import java.io*;public class MainStart{ public static void main(String args){ String filePath = "D:/aa.txt"; FileInputStream fin = new FileInputStream(filePath); InputStreamReader reader = new InputStreamReader(fin); BufferedReader buffReader = new BufferedReader(reader); String strTmp = ""; while((strTmp = buffReader.readLine())!=null){ System.out.println(strTmp); } buffReader.close(); }}
大概就是这样了,流是java里面很重要的一个东西,恩。
更新:
新版本的java提供了NIO,我们可以通过这种新的API达成对文件的读写操作:
对于JDK11及以上版本,读取文本文件异常简单,我们只需要这样:Path path = Paths.get("D:/aa.txt");String data = https://www.zhihu.com/api/v4/questions/67344572/Files.readString(path);System.out.println(data);
对于JDK8,你可以这样:Path path = Paths.get("D:/aa.txt");List\u0026lt;String\u0026gt; lines = Files.readLines(path);
这就能按照行读取全部的文本内容。
对于jdk8,如果想要一次全部读取,你也可以这样做:Path path = Paths.get("D:/aa.txt");byte data = https://www.zhihu.com/api/v4/questions/67344572/Files.readAllBytes(path);String result = new String(data,"utf-8");
更新:
1.读取文件的乱码问题:
使用类库:Cpdetector。
请直接添加相关jar包或者使用maven导入。CodepageDetectorProxy codepageDetectorProxy = CodepageDetectorProxy.getInstance();codepageDetectorProxy.add(JChardetFacade.getInstance());Charset charset = codepageDetectorProxy.detectCodepage(file.toURI().toURL());
Charset就是字符集,可以用来解码byte数组为字符串。
2.二进制读取方式:
2.1 使用DataInputStream:DataInputStream din = new DataInputStream(new FileInputStream(file));byte data = https://www.zhihu.com/api/v4/questions/67344572/new byte;while(din.read(data) /u0026gt; 0) { // 处理数据}din.close();
2.2 使用RandomAccessFileRandomAccessFile randomFile = new RandomAccessFile(file, "r");byte data = https://www.zhihu.com/api/v4/questions/67344572/new byte;while(randomFile.read(data) /u0026gt; 0) { // 处理数据}randomFile.close();
推荐阅读
- 聪明人养花,这3种“花”怎样也要养一盆,每年能省不少医药费
- 互联网怎样解决“家政服务上门速度慢”的问题
- 怎样看待从1月8号起,QQ钱包开始提现收费
- 银行it人怎样转型
- 汽车|冬天怎样让车内温度快速升高?座椅加热的最佳使用方式二,外循环的作用总结
- 怎样进入通信行业
- 怎样评价扶他柠檬茶的小说《云养汉》的结尾
- 怎样成为一名合格的Python程序员?
- 怎样评价华为、诺基亚、中兴中标中国移动高端路由交换设备扩容集采
- 怎样评价类似前橙会、百老汇、南极圈这样类型的离职帮抱团,对企业的积极意义和消极意义