问题
windows下路径分割符'',java程序可识别的是'\'或'/',通过用户输入的路径进行转换,变成程序可识别的,但是转化后的路径程序不识别。
程序
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.util.Scanner;
public class test {
public static void main(String[] args) {
// TODO 自动生成的方法存根
String path=null;
System.out.println("请输入文件路径");
Scanner in=new Scanner(System.in); //输入文件路径 "C:\Users\lenovo\Desktop\新建 Microsoft Excel 工作表.xlsx"
path=in.nextLine().replaceAll("\\\\", "/");
System.out.println(path); //得到系统识别的路径 path="C:/Users/lenovo/Desktop/新建 Microsoft Excel 工作表.xlsx"
//path="C:/Users/lenovo/Desktop/新建 Microsoft Excel 工作表.xlsx";
File file=new File(path); //此时系统找不到文件,但是 将path="C:/Users/lenovo/Desktop/新建 Microsoft Excel 工作表.xlsx";执行后 程序能找到文件,问题就是 path已经是"C:/Users/lenovo/Desktop/新建 Microsoft Excel 工作表.xlsx",但程序不识别,怎么回事
try {
FileReader fileReader=new FileReader(file);
System.out.println("读入文件");
} catch (FileNotFoundException e) {
// TODO 自动生成的 catch 块
System.out.println("文件未找到");
}
}
}
-。 - 問題ないようですので、正常に使用できるパス(つまりコメントアウトしたパス)と、入力後に変換されたパスを比較してください
お試しいただけます
リーリーコードを実行してみたところ、中国語のファイル名も問題なく認識されました。