【问题标题】:Error in opening text file from src folder in Java在 Java 中从 src 文件夹打开文本文件时出错
【发布时间】:2011-08-18 12:21:21
【问题描述】:

我正在制作一个 Java 程序并想打开一个 text(notepad) 文件,该文件已保存在我的 Java 程序的 src 文件夹中,我尝试通过以下代码执行此操作,但它给出了错误。 “Runtime 类型中的方法exec(String) 不适用于参数 (InputStream),有什么建议吗?谢谢

Runtime runtime = Runtime.getRuntime();
InputStream lic = this.getClass().getClassLoader().getResourceAsStream("MyFile.txt");
Process process = runtime.exec(lic);

【问题讨论】:

  • 您是想直接打开记事本,还是要将文件读入您​​的程序?
  • @Jeremy Heiler 我在“MyFile.txt”中保存了一些文本,并想打开该文本文件(其中包含文本)

标签: java file-io iostream


【解决方案1】:

您不能执行输入流,它只是字节的集合,而不是文件。

您应该将此文件存储在项目中的其他位置(如资源文件夹)并使用路径打开文件。下面是它的样子:

File file = new File("resources/my-file.txt");
String[] command = { "notepad.exe", file.getAbsolutePath() };
Runtime.getRuntime().exec( command );

【讨论】:

    【解决方案2】:

    Runtime.exec 方法都不接受InputStream

    http://download.oracle.com/javase/6/docs/api/java/lang/Runtime.html


    要从InputStream 读取文件,请使用BufferedReader

    BufferedReader reader = new BufferedReader(new InputStreamReader(lic));
    
    String line = reader.readLine()
    while(line != null){
        System.out.println(line);
        line = reader.readLine();
    }
    

    【讨论】:

      【解决方案3】:

      我认为这就是你想要做的:

      ProcessBuilder pb = new ProcessBuilder("notepad", "/path/to/text-file");
      Process process = pb.start();
      

      参见ProcessBuilderJavadocs。

      【讨论】:

        猜你喜欢
        • 2020-07-31
        • 2014-06-10
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2018-01-27
        • 2012-09-21
        • 2013-02-01
        • 1970-01-01
        相关资源
        最近更新 更多