哪个 Java IO class 更适合用于简单的 shell 解释器?
Which Java IO class is better to use for a simple shell interpreter?
我是 Java IO 库的新手,所以我很难为我的目的选择正确的 class。我为文件传输服务器编写了一个简单的 shell 客户端。我的客户应该理解三个命令:列出远程目录中的文件(可选地,它可以将嵌套目录路径作为参数)、下载指定文件(将文件路径作为必需参数)和结束会话(一个单独的命令) .我现在关心的是处理用户的输入。
所以问题是:
- 我应该读取整行输入,将其标记化,然后再做一些逻辑,还是最好在输入出现时对其进行标记化,并根据它立即做出决定?
- 我应该使用什么 class 来标记输入:Scanner 还是 StreamTokenizer?或者考虑到我的命令非常简单,我可以只使用 BufferedReader 读取一行,然后按
"\s+"
模式拆分字符串?
这些问题在某种程度上可能看起来很主观,但我只是想减少混淆并了解这些 IO classes 的具体用例。
- 考虑到命令是基本的,读取整个输入然后标记化将需要很多努力。最好将输入标记化,然后根据需要做出决定。
我认为 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();
希望这能回答您的问题。如果需要更多详细信息,请告诉我。
我是 Java IO 库的新手,所以我很难为我的目的选择正确的 class。我为文件传输服务器编写了一个简单的 shell 客户端。我的客户应该理解三个命令:列出远程目录中的文件(可选地,它可以将嵌套目录路径作为参数)、下载指定文件(将文件路径作为必需参数)和结束会话(一个单独的命令) .我现在关心的是处理用户的输入。 所以问题是:
- 我应该读取整行输入,将其标记化,然后再做一些逻辑,还是最好在输入出现时对其进行标记化,并根据它立即做出决定?
- 我应该使用什么 class 来标记输入:Scanner 还是 StreamTokenizer?或者考虑到我的命令非常简单,我可以只使用 BufferedReader 读取一行,然后按
"\s+"
模式拆分字符串?
这些问题在某种程度上可能看起来很主观,但我只是想减少混淆并了解这些 IO classes 的具体用例。
- 考虑到命令是基本的,读取整个输入然后标记化将需要很多努力。最好将输入标记化,然后根据需要做出决定。
我认为 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();
希望这能回答您的问题。如果需要更多详细信息,请告诉我。