【发布时间】:2012-06-30 09:04:27
【问题描述】:
我想在 windows 的 java 中读取一个文件说c.txt。那么任何人都可以建议我如何在java中将文件的系统路径格式化为D:\a\b\c.txt到D:/a/b/c.txt?我知道它会像D:\\a\\b\\c.txt 这样工作,但我想使用这个D:/a/b/c.txt。谢谢!
【问题讨论】:
标签: java file-io replace file-location
我想在 windows 的 java 中读取一个文件说c.txt。那么任何人都可以建议我如何在java中将文件的系统路径格式化为D:\a\b\c.txt到D:/a/b/c.txt?我知道它会像D:\\a\\b\\c.txt 这样工作,但我想使用这个D:/a/b/c.txt。谢谢!
【问题讨论】:
标签: java file-io replace file-location
我不确定您的问题,但硬编码/ 或\ 很少是好的做法。使用 Java 的 File.separator 来帮助您。
【讨论】:
您可以使用char 替换:http://docs.oracle.com/javase/6/docs/api/java/lang/String.html#replace%28char,%20char%29
例子:
String pathToFile = "D:\\a\\b\\c.txt";
pathToFile = pathToFile.replace('\\','/'); <-- with ' and not "
replace(char, char)的文档:
返回一个新字符串,该字符串由替换所有出现的 此字符串中的 oldChar 与 newChar。
【讨论】:
您可以使用File API
File f = new File("c.txt");
System.out.println(f.getAbsolutePath());
System.out.println(f.getCanonicalPath());
或者只是简单的子串
String fname = "D:\\a\\b\\c.txt".replace('\\', '/');
System.out.println(fname);
【讨论】:
String file="D:\\a\\b\\c.txt";
file=file.replace('\\','/');
System.out.println(file);
输出D:/a/b/c.txt
但如果你想让它更依赖于平台,你应该使用File.separator(用于基于字符串的替换)或File.separatorChar(用于基于字符的替换)。
【讨论】: