从java程序中打开任何文件

时间:2014-12-15 03:13:42

标签: java file jfilechooser

在java中打开文件似乎有点棘手 - 对于.txt文件,必须将File对象与Scanner或BufferedReader对象结合使用 - 对于图像IO,必须使用ImageIcon类 - 如果要使用从java开始,打开一个.txt文档(类似于双击应用程序),这段代码似乎有效:

import java.io.*;

public class LiterallyOpenFile {
    public static void main(String[] args) throws IOException {
        Runtime rt = Runtime.getRuntime();
        Process p = rt.exec("notepad Text.txt");
    }
}

我不是肯定的,但我认为其他文件类型/名称可以在exec之后在括号中替换 - 无论如何,当用户点击文件打开时,我打算在JFileChooser中打开某些文件(当用户单击文件时,可以使用getSelectedFile()方法获取文件的路径)。虽然我更具体地希望能够在java程序中打开Arduino IDE中的Arduino文件,比如模拟双击......也许是这样的?

import java.io.*;

public class LiterallyOpenFile {
    public static void main(String[] args) throws IOException {
        Runtime rt = Runtime.getRuntime();
        Process p = rt.exec("Arduino C:\\Arduino\\fibonacci_light\\fibonacci_light.ino");
    }
}

赞赏正确方向的一点。

2 个答案:

答案 0 :(得分:4)

你试过这个吗?如果在Windows中有一个已注册的文件程序,这应该可行。 (即默认应用程序应该打开文件)

Desktop desktop = Desktop.getDesktop();
desktop.open(file);

file参数是File对象。

Link to API

Link to use cases and implementation example of the Desktop class

答案 1 :(得分:1)

这就是我在我的项目中使用 java.awt.Desktop

import java.awt.Desktop;
import java.io.IOException;
import java.io.File;    
public class Main
{
     public static void main(String[] args) {
        try {
              Desktop.getDesktop().open(new File("C:\\Users\\Hamza\\Desktop\\image.png"));
            } catch (IOException e) {
              e.printStackTrace();
            }
    }
}