我正在编写一个非常基本的Java程序,该程序需要一个文件,进行一些修改并将输出保存在另一个文件中。我的问题是我想用相同的名称保存它,但使用不同的扩展名。

我当前的代码使用JFileChooser获取原始文件,将其转换为路径,并使用.resolveSibling()方法。但是,这将导致test.ngc的输出保存在test.ngc.fnc中

有什么好方法可以用相同的名称保存文件,但扩展名与所选的扩展名不同?

Path originalFile = null;

JFileChooser chooser = new JFileChooser(".ngc");
chooser.setFileFilter(new FileNameExtensionFilter("Pycam G Code files", "ngc"));
if (chooser.showOpenDialog(null) == JFileChooser.APPROVE_OPTION)
{
    originalFile = chooser.getSelectedFile().toPath();
}

Path newFile = originalFile.resolveSibling(originalFile.getFileName() + ".fnc");

/* does reading and modification and saving here using BufferedReader and BufferedWriter*/

最佳答案

这应该工作:

String originalFilename = originalFile.getFileName();
String fileNameNew = originalFilename.substring(0, originalFilename.length()-".ngc".length())+".fnc";
Path newFile = originalFile.resolveSibling(fileNameNew);

关于java - Java将文件以相同的名称保存在同一目录中,但扩展名不同,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/40731396/

10-10 10:11