如何在Java中读取U盘根目录下的INPUT.TXT文件?
解决java.io.FileNotFoundException:定位U盘上的INPUT.TXT文件
嘿,这个问题太常见啦——你现在的代码是在当前程序运行的工作目录里找INPUT.txt,但讲师给的文件在U盘根目录,自然找不到咯。给你一步步捋清楚怎么搞定:
1. 先找到U盘在系统里的实际路径
- Windows系统:打开文件资源管理器,U盘会显示成一个独立盘符(比如
D:、E:),根目录路径就是盘符:\INPUT.TXT,比如D:\INPUT.TXT。 - macOS/Linux系统:U盘通常会挂载到特定目录,macOS一般是
/Volumes/[你的U盘名称],Linux则是/media/[你的用户名]/[U盘名称],比如U盘名叫ClassUSB,路径就是/Volumes/ClassUSB/INPUT.TXT。
2. 修改代码里的文件路径
直接把U盘的完整路径写到代码里就行,注意几个小细节:
- Windows系统里,路径里的反斜杠
\需要转义,所以要写成"D:\\INPUT.TXT",或者直接用正斜杠"D:/INPUT.TXT"(Java会自动识别)。 - 一定要注意文件名的大小写!讲师给的是
INPUT.TXT,你原来代码里写的是INPUT.txt——Windows不区分大小写,但macOS/Linux是严格区分的,所以最好统一写成"INPUT.TXT"。
举个具体的代码例子(Windows环境):
// 替换成你的U盘盘符 Scanner reader = new Scanner(new File("D:\\INPUT.TXT"));
如果想让代码更适配不同系统,可以用File.separator自动适配路径分隔符:
// 这里替换成你的U盘根路径,比如Windows的"D:",macOS的"/Volumes/ClassUSB" String usbRootPath = "D:"; File inputFile = new File(usbRootPath + File.separator + "INPUT.TXT"); Scanner reader = new Scanner(inputFile);
3. 额外排查小技巧
要是还是找不到,先确认这几点:
- U盘是不是已经正确连接到电脑,能在文件管理器里看到
INPUT.TXT文件? - 可以打印下程序的当前工作目录,看看它默认在找哪里:
你会发现默认是你的项目目录,根本不是U盘路径,这就是问题根源啦。System.out.println("当前程序工作目录: " + System.getProperty("user.dir"));
内容的提问来源于stack exchange,提问作者yoobi
相关产品推荐
相关产品推荐

