我有一个文本文件,我想把它的全部内容读入一个字符串变量。当我使用Android的assetManager时,该文件将作为InputStream打开。open()
方法。
将整个内容读入字符串的最佳实践方式是什么?目前,我正在使用一个InputStreamReader和一个BufferedReader包装InputStream,并使用一个while循环,通过readLine()方法逐行读取文本。
这篇文章有没有更好的阅读方法考虑到我没有逐行阅读的要求,如果可能的话,我想一次读完
这是另一种可能的方法。
BufferedReader br = new BufferedReader(new FileReader("a.txt"));
char[] cbuf = new char[500];
br.read(cbuf);
String fileContents = new String(cbuf);
人们通常不应该重新发明轮子,所以如果Android上的开销可以承受的话,就使用ApacheCommons库。使用组织。阿帕奇。平民木卫一。尤蒂尔斯。托斯特林。
InputStream in = new FileInputStream(new File("a.txt"));
String s = IOUtils.toString(in, "UTF-8");
这就是Java7文件的内容。readAllLines
方法确实如此——我认为这是一种非常好的方法(它使用了一种try-with-resources语法,很容易在android上转换):
public static List<String> readAllLines(Path path, Charset cs) throws IOException {
try (BufferedReader reader = newBufferedReader(path, cs)) {
List<String> result = new ArrayList<String>();
for (;;) {
String line = reader.readLine();
if (line == null)
break;
result.add(line);
}
return result;
}
}
在本例中,您可以将字符串附加到StringBuilder,而不是将其添加到列表中。
问题内容: 这就是我逐行处理文件的方式。但是,在这种情况下,我想在每次迭代中向处理器发送 两 行文本。(我正在处理的文本文件实际上在两行上存储了一条记录,因此每次都向处理器发送一条记录。) 用Java做到这一点的最佳方法是什么? 问题答案: 为什么不读两行呢? 假设您可以依靠输入文件中包含完整的2行数据集。
字符串表[]=新字符串[100];
问题内容: 在我的PHP应用程序中,我需要 从许多文件 (主要是日志) 的末尾开始读取多行 。有时我只需要最后一个,有时我需要数十或数百。基本上,我想像Unix 命令一样灵活。 这里有一些关于如何从文件中获取最后一行的问题(但是我需要 N 行),并给出了不同的解决方案。我不确定哪一个最好,哪个表现更好。 问题答案: 方法概述 在互联网上搜索时,我遇到了不同的解决方案。我可以将它们分为三种方法: 天
问题内容: 我想从一个充满整数的文本文件中读取数据,并让程序在求和时将这些整数打印到屏幕上。这应该不难,但我无法弄清楚!!! 这是极其简化的文本文件: 这是我应该工作的代码: 最后,这是我得到的输出: 问题答案: 您在循环中两次调用textfile.nextInt()。尝试:
我正在尝试使用TextScan从文本文件中读取数据。textfile由3个空格分隔,有100行数据和9列。我可以让它返回我认为是100×1的矩阵。我想知道如何得到返回矩阵100×9的代码。下面是我使用的代码... 正如您所看到的,当我访问数据{5}时,我得到了一些接近我想要的东西。我的最终目标是创建一个包含1-8列的矩阵,然后创建一个包含9行的列矩阵。下面是如何在文本文件中格式化数据。第1列之前有