从文本文件中读取并存储到字符串中

24

如何从文本文件中读取数据并存储到字符串变量中?

是否可以在方法中传递文件名,并返回文本文件的字符串内容。

需要导入哪些实用程序?请提供语句列表。


Java,简单的Java语言。 - Mfali11
为什么你不打标签呢?这样可以让人们看到。 - Mustafa Ekici
你需要 java.io.* - PM 77-1
4
回答这个问题的答案是“是”。请查看基本 I/O 获取更多详细信息。 - MadProgrammer
请分享您尝试过的内容。 - jahroy
8
@MrD - 更正:他要求别人为他做工作,我问他尝试过哪些代码。答案是“_他什么都没试过_”(包括谷歌)。如果你想回答这个问题,可以自由发挥,但我觉得没必要。这个问题只会在网站上造成垃圾信息。你的回答只会鼓励提问者继续懒惰并滥用StackOverflow。 - jahroy
2个回答

75

这些是必要的导入:

import java.io.BufferedReader;
import java.io.FileReader;
import java.io.IOException;

以下是一种方法,允许您通过将文件名作为参数传递给它来从文件中读取内容,例如:readFile("yourFile.txt");

String readFile(String fileName) throws IOException {
    BufferedReader br = new BufferedReader(new FileReader(fileName));
    try {
        StringBuilder sb = new StringBuilder();
        String line = br.readLine();

        while (line != null) {
            sb.append(line);
            sb.append("\n");
            line = br.readLine();
        }
        return sb.toString();
    } finally {
        br.close();
    }
}

8
您可以使用Apache的FileUtils库在一行代码中完成这个操作...关于这个问题已经有太多的提问了,简直不可思议。 - jahroy
2
这段代码存在几个问题:你怎么知道文件是平台默认编码?你怎么知道该编码每个字符只使用一个字节?如果读取时出现异常,FileReader 不需要关闭吗? - meriton
这里有一个已经存在一段时间的更好的问题/答案:https://dev59.com/qnRC5IYBdhLWcg3wVvnL。 - jahroy
1
需要将以下内容作为while语句插入以防止空值 --> while ((line = br.readLine()) != null) - xhallix
@ChristophHa 在调用readLine()之后添加行终止符与readLine()内部发生的事情无关。 - user207421
显示剩余2条评论

-5
我们如何从文本文件中读取数据并存储在字符串变量中?
嗯,读取文件中的数据并将其存储在字符串变量中。这只是代码,到目前为止不是一个真正的问题。
能否在方法中传递文件名,并返回文件中的文本字符串?
是的,这是可能的。但这也是一个非常糟糕的想法。您应该逐部分处理文件,例如一行一行地处理。在处理任何内容之前将整个文件读入内存会增加延迟;浪费内存;并假定整个文件将适合内存。有一天它不会。您不想以这种方式处理它。

1
@downvoter 好的,那是哪个呢?它不会增加延迟吗?不会浪费内存吗?不会假设整个文件都适合内存吗? - user207421
如果您能添加一些示例,那将非常有帮助,特别是对于初学者。 - Varun

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接