我试图弄清楚是否有任何独立于平台的方法来使用默认文本编辑器打开文本文件,即使该文件没有以.txt
结尾。我尝试了以下代码,但是对于没有.txt
扩展名的文件会抛出异常。适用于.txt
个文件。
Desktop dt = Desktop.getDesktop();
try
{
dt.open(fileName);
}
catch(Exception e){
// Catch exception here
}
答案 0 :(得分:2)
未经测试,从未如此:
Desktop.open()
这对我来说很适合:
public static void main(String... args) throws IOException {
Path source = FileSystems.getDefault().getPath(args[0]);
Path symLink = Files.createTempFile(source.getFileName().toString(), ".txt");
Files.delete(symLink);
Files.createSymbolicLink(symLink, source);
Desktop.getDesktop().open(symLink.toFile());
}
免责声明:除上述烟雾测试外,我没有做过任何研究。
答案 1 :(得分:-2)
我想弄清楚是否有任何平台无关方式用默认文本编辑器打开文本文件。
你看到上面的冲突吗? 所有平台都有自己的方式来管理默认文本编辑器,Java无法找到默认编辑器。 由于您的文件不是.txt,因此无法使用AWT中的好方法。
但是,你可以
我知道这两种方法(尤其是第一种方法)都有其缺点。 第一种方法实际上是移动文件,甚至副本也没有有效地解决问题。 但是,第二种方法可能有效。
如果你想保持平台独立,我担心你不能做得更多。