【问题标题】:Using a text file to carry commands in Java使用文本文件在 Java 中携带命令
【发布时间】:2012-06-07 05:41:04
【问题描述】:

您好,我对 java 和编程还很陌生。我想知道如何读取文本文件(test.txt)并实现它以执行一个过程,例如在链表中创建和删除节点以及为它们分配一个值。例如,如果 txt 文件读取:

插入 1

插入 3

删除 3

我希望程序创建一个节点并为其分配值 1,创建一个节点并为其分配值 3,然后删除分配值为 3 的节点。

这是我到目前为止的一些粗略代码。谢谢。

代码:

import java.io.*;

class FileRead 
{

  public static void main(String args[])
  {

    try
    {

      // Open the file that is the first 

      // command line parameter

      FileInputStream fstream = new FileInputStream("textfile.txt");

      // Get the object of DataInputStream

      DataInputStream in = new DataInputStream(fstream);

      BufferedReader br = new BufferedReader(new InputStreamReader(in));

      String strLine;

      //Read File Line By Line

      while ((strLine = br.readLine()) != null)
      {

        // Print the content on the console

        System.out.println (strLine);

      }

      //Close the input stream

      in.close();

    }

    catch (Exception e){//Catch exception if any

    System.err.println("Error: " + e.getMessage());

  }

}

}

【问题讨论】:

  • 我相信里面有一个额外的右括号。
  • 谢谢贾里德。你会碰巧知道如何解析文本吗? (关于我上面的问题)

标签: java file parsing text


【解决方案1】:

如果文件中的命令格式总是正确的,你可以用 Scanner 包裹输入流,用next() 读取字,然后用nextInt() 读取数字。无需复杂的输入验证。这甚至可以让数字与命令位于不同的行。

如果您希望输入无效,为简单起见,您可以使用当前的逐行读取方案并检查命令。使用.trim().split("\\s+") 按空格修剪和标记行。然后比较令牌数组中的第一项并检查它是否是有效命令。命令有效则调用相应函数处理,否则打印错误信息。

如果您有多个命令,可以使用Command pattern 使您的代码更易于管理。

【讨论】:

  • 谢谢!我得到了大部分工作,我只需要比较令牌数组中的第一项。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2020-10-31
  • 2017-04-10
  • 1970-01-01
  • 2019-02-19
  • 1970-01-01
  • 2018-05-01
  • 2014-04-26
相关资源
最近更新 更多