java - 获取 cmd 中输入的文件名

标签 java file-io

我目前正在开发一个项目,需要一些帮助。根据用户输入,我必须从一些 txt 文件中读取一些数据。程序的调用方式有以下三种:

java Graph [-u] -s start example_graph.txt

java Graph [-u] -a example_graph.txt

java Graph [-u] -d traffic.txt

根据用户选择的内容,我必须读取的文件是:

clrs.txt, traffic.txt, traffic_u.txt, facebook_combined_u.txt

我用来读取和存储文件数据的方法是

公共(public)无效readFile(){

    String txtFile = "filename.csv";
    BufferedReader br = null;
    String line = "";
    String txtSplitBy = ",";
    try {

        br = new BufferedReader(new FileReader(txtFile));
        while ((line = br.readLine()) != null) {
            String[] dj = line.split(txtSplitBy);
            int node_a = Integer.parseInt(dj[0]);
            int node_b = Integer.parseInt(dj[1]);
            int weight = Integer.parseInt(dj[2]);
            if (node_a > adj.size()) {
                for (int i = adj.size() + 1; i <= node_a; i++) {
                    adj.add(new HashSet<Link>());
                }
            }
            HashSet<Link> h = adj.get(node_a);
            h.add(new Link(node_b, weight));
        }

    } catch (FileNotFoundException e) {
        e.printStackTrace();
    } catch (IOException e) {
        e.printStackTrace();
    } finally {
        if (br != null) {
            try {
                br.close();
            } catch (IOException e) {
                e.printStackTrace();
            }
        }
    }

但此方法仅在我有特定文件作为输入时才有效。现在有多个文件,如何将文件名转换为字符串?

最佳答案

正如注释中指出的,您可以从 main 方法的 args 区域中的 cmd 行读取参数,例如:

public class SO {
 public static void main(String[] args) {
    for(String s : args){ //For each argument
        if(s.indexOf(".") != -1){ //If contains a dot (like a file ext)
            System.out.println(s); //print
        }
    }
 }
}

运行时:

java SO [-u] -a example_graph.txt

它写出了文件的名称。

希望这有帮助!

关于java - 获取 cmd 中输入的文件名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22880136/

相关文章:

c++ - 如何在现有文件中插入文本?

java - 如何为选定的日期和时间设置闹钟?

java - Java 抽象类中的变量可以是抽象的吗?

java - 我如何在 spring 2.2.4.RELEASE 中从类中检索 jpa-repository 实例

c++ - 如何使用getline从文件中读入数组

java - 如何因多种原因删除异常文件

java - Scala/Python 与 Java : SparkContext. 映射与 PI 示例中的 .filter?

java - Apache Commons Math SpearmansCorrelation - 如何使用

c - 将制表符分隔的数据读取到 C 中的数组

c - 在文本文件中一次读取多行 - C