当前位置: 代码网 > it编程>编程语言>Java > Java读取文件内容的几种方式是什么?代码示例详解

Java读取文件内容的几种方式是什么?代码示例详解

2026年09月03日 Java 我要评论
在工作和学习中,有时候会有一些场景,代码需要配合读取文件来执行,比如:读文件数据,来进行计算、组装sql、更新操作......下面我们来讨论下,在java中按行读取文件文件内容的方式有哪些?一、前提说

在工作和学习中,有时候会有一些场景,代码需要配合读取文件来执行,比如:读文件数据,来进行计算、组装sql、更新操作......

下面我们来讨论下,在java中按行读取文件文件内容的方式有哪些?

一、前提说明

  • 读取的文件内容

  • 测试代码
system.out.println("总行数:" + ids.size());
for (int i = 0; i < ids.size(); i++) {
	// system.out.println("第" + (i + 1) + "行内容:" + ids.get(i));
	string content = ids.get(i);
	system.out.println(string.format("第%d行内容:%s,内容长度:%d", i + 1, content, content.length()));
}
  • 输出结果
总行数:5
第1行内容:1,内容长度:1
第2行内容:2,内容长度:1
第3行内容:3,内容长度:1
第4行内容:4,内容长度:1
第5行内容:5,内容长度:1

二、方法

1、java.io.fileinputstream

file file = new file("g:\\ids.txt");
list<string> ids = new arraylist<>();
try (fileinputstream fileinputstream = new fileinputstream(file);) {
	int size = fileinputstream.available();
	for (int i = 0; i < size; i++) {
		ids.add((char) fileinputstream.read() + "");
	}
} catch (ioexception e) {
	e.printstacktrace();
}
总行数:13
第1行内容:1,内容长度:1
,内容长度:1
第3行内容:
,内容长度:1
第4行内容:2,内容长度:1
,内容长度:1
第6行内容:
,内容长度:1
第7行内容:3,内容长度:1
,内容长度:1
第9行内容:
,内容长度:1
第10行内容:4,内容长度:1
,内容长度:1
第12行内容:
,内容长度:1
第13行内容:5,内容长度:1

分析:虽然读取1个字符,但每行后面可能还有隐藏换行符`

总结:适用于按照字符一个个读取的场景

2、java.io.bufferedreader

filereader就能用于读取文本文件,使用bufferedreader能提高读取文件的性能

file file = new file("g:\\ids.txt");
list<string> ids = new arraylist<>();
try (bufferedreader bufferedreader = new bufferedreader(new filereader(file));) {
	// java8以后
	ids = bufferedreader.lines().collect(collectors.tolist());

	// java7以前
	// string str = null;
	// while ((str = bufferedreader.readline()) != null) {
	// 	ids.add(str);
	// }
} catch (ioexception e) {
	e.printstacktrace();
}

3、java.nio.file.files

三种写法都可以,直接就可以返回一个list

// java7以后
list<string> ids = files.readalllines(new file("g:\\ids.txt").topath());
// java7以后
list<string> ids = files.readalllines(paths.get("g:\\ids.txt"));
// java8以后
list<string> ids = files.lines(paths.get("g:\\ids.txt")).collect(collectors.tolist());

4、org.apache.commons.io.fileutils

apache commons中的工具类

list<string> ids = fileutils.readlines(new file("g:\\ids.txt"));

5、java.util.scanner

scanner类可以用来获取控制台的输入,也可以用来对文件的读取。

之所以可以这样,是因为提供了构造函数重载

list<string> ids = new arraylist<>();
try (scanner sc = new scanner(new file("g:\\ids.txt"))) {
    while (sc.hasnextline()){
		ids.add(sc.nextline());
	}
} catch (ioexception e) {
    e.printstacktrace();
}

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持代码网。

(0)

相关文章:

版权声明:本文内容由互联网用户贡献,该文观点仅代表作者本人。本站仅提供信息存储服务,不拥有所有权,不承担相关法律责任。 如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 2386932994@qq.com 举报,一经查实将立刻删除。

发表评论

验证码:
Copyright © 2017-2026  代码网 保留所有权利. 粤ICP备2024248653号
站长QQ:2386932994 | 联系邮箱:2386932994@qq.com