Java 从txt文件中收集所有文本并打印到控制台
我有一个文本文件,其中的文本文件看起来像Java 从txt文件中收集所有文本并打印到控制台,java,Java,我有一个文本文件,其中的文本文件看起来像output.txt | Component | Tests Run | Tests Failed | |:-----------|:-----------:|:-----------------------------------------------| | Server | 948 | :white_check_mark: 0
output.txt
| Component | Tests Run | Tests Failed |
|:-----------|:-----------:|:-----------------------------------------------|
| Server | 948 | :white_check_mark: 0 |
| Web Client | 123 | :warning: 2 [(see details)](http://linktologs) |
| iOS Client | 78 | :warning: 3 [(see details)](http://linktologs) |
这里是我的工作目的,我需要把所有的代码推到某个地方,这样它就会像表格一样显示出来
我想从文本文件中读取所有文本并一起打印文本
目前逐行打印
try {
FileReader reader = new FileReader("C:\\Users\\Zsbappa\\Pictures\\test\\output.txt");
int line;
while ((line = reader.read()) != -1) {
System.out.print((char) line);
}
reader.close();
} catch (IOException e) {
e.printStackTrace();
}
任何建议都将受到欢迎尝试使用:
FileInputStream inputStream = new FileInputStream("output.txt");
try {
System.out.println(IOUtils.toString(inputStream));
} finally {
inputStream.close();
}
IOUtils类是apachecommons IO的一部分。可以下载它。尝试使用:
FileInputStream inputStream = new FileInputStream("output.txt");
try {
System.out.println(IOUtils.toString(inputStream));
} finally {
inputStream.close();
}
IOUtils类是apachecommons IO的一部分。可以下载。如果您使用的是Java 8或更高版本,请将其作为流阅读:
Files.lines(Paths.get("C:\\Users\\Zsbappa\\Pictures\\test\\output.txt")).forEach(System.out::println);
如果您使用的是Java 8或更高版本,请将其作为流读取:
Files.lines(Paths.get("C:\\Users\\Zsbappa\\Pictures\\test\\output.txt")).forEach(System.out::println);
根据您的问题,您希望同时阅读文件,但只逐行打印文件。我不确定您为什么要这样做,但这应该是可行的:
try {
File file = new File("C:\\Users\\Zsbappa\\Pictures\\test\\output.txt");
FileInputStream fis = new FileInputStream(file);
byte[] data = new byte[(int) file.length()];
fis.read(data);
fis.close();
String str = new String(data, "UTF-8");
String lines[] = str.split("\\r?\\n");
for (String line : lines) {
System.out.println(line);
}
} catch (IOException e) {
e.printStackTrace();
}
这对于大型文本文件来说效率很低,并且会占用内存,但这是我能想到的解决您的特定问题的最佳解决方案
还记得导入
文件
和文件输入流
,因为它们是您正在使用的新的标准库依赖项。根据您的问题,您希望一次读取文件,但只逐行打印。我不确定您为什么要这样做,但这应该是可行的:
try {
File file = new File("C:\\Users\\Zsbappa\\Pictures\\test\\output.txt");
FileInputStream fis = new FileInputStream(file);
byte[] data = new byte[(int) file.length()];
fis.read(data);
fis.close();
String str = new String(data, "UTF-8");
String lines[] = str.split("\\r?\\n");
for (String line : lines) {
System.out.println(line);
}
} catch (IOException e) {
e.printStackTrace();
}
这对于大型文本文件来说效率很低,并且会占用内存,但这是我能想到的解决您的特定问题的最佳解决方案
另外,请记住导入
文件
和文件输入流
,因为它们是您正在使用的新标准库依赖项。可能的重复项不是重复的,先生。我想把所有的文本放在一起。他们逐行阅读。在添加标志之前,你应该阅读细节。问题是什么?这段代码对我来说很有用,就像charmi想在一个变量中得到全文并打印出来一样。它的逐行打印可能是重复的,先生。我想把所有的文本放在一起。他们逐行阅读。在添加标志之前,你应该阅读细节。问题是什么?这段代码对我来说就像charmi希望在一个变量中获取全文并打印它一样..它的逐行打印它在线程“main”中抛出错误异常java.lang.OutOfMemoryError:java.util.Arrays.copyOf(Arrays.java:3332)在线程“main”中抛出错误异常java.lang.OutOfMemoryError:java.util.Arrays.copyOf(Arrays.java:3332)处的java堆空间实际上,我是一个按摩器,如果获取所有输出文件并发送它,它将像表一样格式化。这就是我的目的。它不是一个大的文本文件..让我们检查一下你的程序在线程“main”java.lang.NegativeArraySizeException的这一行中有一个异常字节[]数据=新字节[(int)file.length()];文件里有什么东西吗?它被破坏了吗?我不知道获取文件长度如何返回负数,除非您的文件有问题。类似outputI的相同文本只是编辑了我的解决方案以获得正确的try
catch
,从而完成错误处理。我把你的output.txt
文件复制到我的电脑上,并在上面运行程序。它印得很好。你确定你的文件没有损坏(或者路径没有弄乱)?事实上,我是一个按摩器,如果得到所有的输出文件并发送它,它将像表格一样格式化。这就是我的目的。它不是一个大的文本文件..让我们检查一下你的程序在线程“main”java.lang.NegativeArraySizeException的这一行中有一个异常字节[]数据=新字节[(int)file.length()];文件里有什么东西吗?它被破坏了吗?我不知道获取文件长度如何返回负数,除非您的文件有问题。类似outputI的相同文本只是编辑了我的解决方案以获得正确的try
catch
,从而完成错误处理。我把你的output.txt
文件复制到我的电脑上,并在上面运行程序。它印得很好。你确定你的车没有被损坏(或者道路没有被弄乱)吗?它工作得很好,但帮不了我。谢谢你的努力工作得很好,但帮不了我。谢谢你的努力