是否有更优雅的方法来执行以下操作?
try (FileWriter myWriter = new FileWriter(Paths.get(folder,fileName).toAbsolutePath().toString())){
我有字符串形式的文件夹路径和文件名,我想安全地组合它们。例如如果
String folder = "/tmp/"
String fileName = "/myfile.txt"
不要最终
"/tmp//myfile.txt"
或与
String folder = "/tmp"
String fileName = "myfile.txt"
不要最终
"/tmpmyfile.txt"
我使用的方法是将 String 转换为路径,然后再转换回 String,这感觉很奇怪,但看起来 FileWriter 不直接接受 Path 。
是否有比我现有的更优雅的解决方案?
最佳答案
使用Files.newBufferedWriter(Path, OpenOption...)
.
try (Writer myWriter = Files.newBufferedWriter(Paths.get(folder, fileName))) {
// other code
}
请注意,虽然 FileWriter
构造函数使用 JVM 的默认编码,但此方法使用 UTF-8
编码,这通常被认为更有用。如果您需要复制 FileWriter
构造函数的行为,请使用
Files.newBufferedWriter(path, Charset.defaultCharset());
关于java - 如何安全地将字符串组合到文件路径并打开文件写入器?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/72142207/