【问题标题】:Java Equivalent to fscanf in C [duplicate]Java等效于C中的fscanf [重复]
【发布时间】:2018-10-21 01:29:56
【问题描述】:

您好,我正在尝试用 Java 逐行读取文件。例如,我希望能够做类似的事情

//c code
while( fscanf(ptr, "%s %s %s",string1,string2,string3) == 3)
     printf("%s %s %s",string1,string2,string3);

我单独扫描文件中的每一行并将其存储在一个变量中。

我已经开始创建一个文件对象并找到该文件。但是我还没有找到能够读取输入的函数。

【问题讨论】:

标签: java c file


【解决方案1】:

使用面向行的输入,拆分行并打印内容。也就是说,阅读每个line,检查您是否有三个令牌(如果没有则结束)并打印它们。喜欢,

Scanner sc = new Scanner(System.in);
while (sc.hasNextLine()) {
    String line = sc.nextLine();
    String[] tokens = line.split(" ");
    if (tokens.length != 3) {
        break;
    }
    System.out.printf("%s %s %s%n", tokens[0], tokens[1], tokens[2]);
}

System.in 更改为File 以从文件中读取。

【讨论】:

  • 嗨,我会在你写 System.in 的地方输入什么?例如,该文件将被称为 file.txt
  • @User9123 new File("file.txt") - 请注意您负责 PATHing。所以我通常更喜欢new File(System.getProperty("user.home"), "file.txt")
  • 由于某种原因,如果我执行代码直到带有标记的部分,它正在打印 file.txt 而不是文件中的行,有什么想法吗?
  • 是的。你忘了new File
  • 我看到我已将扫描仪更改为文件,但是现在我的 nextLine() 无法正常工作
猜你喜欢
  • 1970-01-01
  • 2012-12-13
  • 1970-01-01
  • 2012-10-06
  • 2014-09-21
  • 2011-03-18
  • 2011-10-13
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多