哪个Java IO类更适合用于简单的shell解释器?

哪个Java IO类更适合用于简单的shell解释器?,java,shell,io,tokenize,Java,Shell,Io,Tokenize,我是Java IO库的新手,所以我很难为自己的目的选择正确的类。我为文件传输服务器编写了一个简单的shell客户端。我的客户机应该理解三个命令:列出远程目录中的文件(可选地,它可以将嵌套的目录路径作为参数)、下载指定的文件(将文件路径作为所需参数)和结束会话(单独的命令)。我现在关心的是如何处理用户的输入。 因此,问题是: 我应该阅读整行输入,将其标记化,然后再执行一些逻辑,还是最好在输入出现时将其标记化,并根据其立即做出决策 我应该使用什么类来标记输入:Scanner还是StreamToken

我是Java IO库的新手,所以我很难为自己的目的选择正确的类。我为文件传输服务器编写了一个简单的shell客户端。我的客户机应该理解三个命令:列出远程目录中的文件(可选地,它可以将嵌套的目录路径作为参数)、下载指定的文件(将文件路径作为所需参数)和结束会话(单独的命令)。我现在关心的是如何处理用户的输入。 因此,问题是:

  • 我应该阅读整行输入,将其标记化,然后再执行一些逻辑,还是最好在输入出现时将其标记化,并根据其立即做出决策
  • 我应该使用什么类来标记输入:Scanner还是StreamTokenizer?或者考虑到我的命令非常简单,我可以使用BufferedReader读取一行,然后按
    “\\s+”
    模式拆分字符串 这些问题在某种程度上可能是主观的,但我只是想减少混淆,了解这些IO类的具体用例

  • 考虑到这些命令是基本的,读取整个输入然后标记化将需要大量的工作。最好将输入标记化,然后根据需要做出决定
  • 我认为BufferedReader足以满足您的要求。这将使代码变得简单。即使当我从csv文件中获取输入,然后将其标记为图形显示时,我也使用了相同的方法。我解析字符串的逻辑如下:-

      String splitBy = ";"; // As I am using CSV file below I used ";" as splitter. You can change as per your needs
    
      BufferedReader br = new BufferedReader(new FileReader("file.csv"));
      String line = br.readLine();
      while((line = br.readLine()) != null)
      {
           String[] b = line.split(splitBy);
           //Take actions you need to perform
      }
      br.close();
    
  • 希望这能回答你的问题。如果需要更多细节,请告诉我

  • 考虑到这些命令是基本的,读取整个输入然后标记化将需要大量的工作。最好将输入标记化,然后根据需要做出决定
  • 我认为BufferedReader足以满足您的要求。这将使代码变得简单。即使当我从csv文件中获取输入,然后将其标记为图形显示时,我也使用了相同的方法。我解析字符串的逻辑如下:-

      String splitBy = ";"; // As I am using CSV file below I used ";" as splitter. You can change as per your needs
    
      BufferedReader br = new BufferedReader(new FileReader("file.csv"));
      String line = br.readLine();
      while((line = br.readLine()) != null)
      {
           String[] b = line.split(splitBy);
           //Take actions you need to perform
      }
      br.close();
    

  • 希望这能回答你的问题。如果需要更多详细信息,请告诉我。

    您的意思可能是将
    “\\s+”
    作为拆分
    字符串的模式
    @ChristianHujer,谢谢。更正。您的意思可能是将
    “\\s+”
    作为拆分
    字符串的模式,谢谢。更正。