【发布时间】:2015-03-01 18:14:28
【问题描述】:
我使用下面的代码从 txt 文件中读取。
ArrayList<String> elements = new ArrayList<String>();
String line = null;
BufferedReader in = new BufferedReader(new FileReader("example.txt"));
//in.close();
while((line = in.readLine()) != null){
elements.add(line);
}
check1 = (elements.get( 0));
System.out.println("HEYAAA \n" + check1);
//GUIServer guiServer = new GUIServer();
}catch(Exception e){
System.out.println("Error while reading file line by line:" + e.getMessage());
}
我有“1. 我的名字是 bob \n 2. 帮助你 \n 3. 只是测试”在 txt 文件中全部在一行中。但是当我将它读入 java 时,它全部打印在一行中并且没有't read "\n".. 我该怎么做才能打印出 3 行,所以它会读取 "\n" ..?
或者,我可以在 txt 文件中手动将它们分开,每个新行,但是我如何读取例如 3 行并存储到一个变量中..?
哪一种方法更容易,我将不胜感激。
【问题讨论】:
-
文本文件中的 \n 只会被 java 读取为文本,因此将其拆分为单独的行将是最简单的解决方案。
-
但是您如何读取 3 行并将其存储到一个变量中.. 然后再为接下来的 3 行将其存储在另一个变量中..
-
这个问题看起来像XY problem。请说明您想要实现的目标以及您的数据是什么样的,因为
\n似乎是您尝试解决实际问题的结果,而不是您想要的输入格式。 -
您需要在 while 循环中使用计数器,并且每次通过循环时,您都会将字符串添加到 StringBuilder,当 counter%3 == 0 时,您会将 StringBuilder 添加到列表中,然后重置 StringBuilder。然后当循环结束时,如果 StringBuilder 不为空,则将其添加到列表中。
-
顺便说一句,由于您似乎是 Stack Overflow 上的新手,您可能不知道要纠正您的问题,您可以使用帖子下方的 [edit] 选项。