当前位置: 首页 > 知识库问答 >
问题:

扫描仪从文件中跳过每秒一行[重复]

傅俊德
2023-03-14

我试图扫描一个文本文件,并将每一行放入arraylist中,当下一行是'*'时停止扫描,然而,我的arraylist每隔第二行存储一次,我不知道为什么。

Scanner scan = new Scanner(new File("src/p/input2.txt"));
ArrayList<String> words = new ArrayList<String>(); 

while(scan.hasNextLine()) { 
    if(scan.nextLine().equals("*"))
        break;
    words.add(scan.nextLine());
}
1

dip
lip
mad
map
maple
may
pad
pip
pod
pop
sap
sip
slice
slick
spice
stick
stock
*
spice stock
may pod

共有1个答案

佘单鹗
2023-03-14

您总是将这一行读两遍(除非得到*)

if(scan.nextLine().equals("*")) // read here - "someString"
   break;
words.add(scan.nextLine());  // ignore last read line and read again.

你只读一次然后比较。

String value = scan.nextLine();
// check for null / empty here
if (value.equals("*"))
  break;
words.add(value);
 类似资料:
  • 我试图从用户那里得到2个整数。这是我的代码的相关部分: 起初,它抛出一个,所以我使用了。现在,它只需跳过扫描器并立即调用。

  • 问题内容: 我正在尝试扫描文本文件并将每一行放入arraylist,并在下一行为’*’时停止扫描,但是,我的arraylist存储第二行,我不确定为什么。 文本文件: 我的arraylist中存储了什么: [Dip, crazy, maple, mat, pod, juice, slice, spice, stock] 问题答案: 您总是会两次阅读该行(除非您收到) 您只阅读一次,然后进行比较。

  • 我觉得我在做一些非常愚蠢的事情,但我是Java新手,所以请耐心等待。我正在使用FileReader和扫描器来读取。txt文件的行。抓取每一行后,我提取一些信息,然后移动一行。这就是我的简化方法的样子: 我的问题是,如果将留在原处,我总是会跳过。txt文件的第一行,但是如果将它移到的末尾,当扫描仪到达。txt文件的末尾时,我会得到一个“no sock line exists”异常。 如有任何帮助和指

  • 问题内容: 我有一个创建多个对象并将其放入一个类的类,如下所示: 我有一个从控制台扫描输入“ add”的应用程序,如果找到该应用程序,则调用如下所示的方法: 该应用程序应允许用户根据需要多次输入“添加”,但是在add调用该方法后将出现错误“找不到行” 。 我猜这是因为方法中的尚未关闭,然后在需要时重新打开。这是程序的问题吗?如果是,我将如何修复它? 请注意,该程序尚未完成,因为我将添加一种出售这些

  • 问题内容: 我正在玩Scanner类,以进行学习,并且我使用它来读取非常大的文件(大约60.000行,大约不使用Reader类),并且在大约400行后停止读取。我是否必须在Scanner的构造函数中使用Bufferedreader还是问题?我想知道为什么会这样。谢谢。我的代码是输出所有行的常用代码。 问题答案: 此问题通常在64位计算机上或文件大小大于1-2 GB的文件中更常见,并且与堆空间无关。

  • 声纳扫描仪无法完成扫描。我检查了日志,我看到扫描卡在一个文件上,如下所示 信息:977/6093已分析文件,当前文件:C:\Projects\ABC\src\main\java。通用域名格式。化学机械抛光。rpt。汇报JAVA 扫描仪会一直打印此消息,扫描永远不会完成。这是最近的一个问题。我检查了该文件的历史记录,该文件没有任何更改。我最近更新了Sonar中的Java插件。我的服务器配置如下 So