java.io.FileNotFoundException:系统找不到指定的文件

所以我一直坚持这一点。 基本上,我有一个名为“word.txt”创build的文件,每当我运行该程序,它给了我这个错误:

Exception in thread "main" java.io.FileNotFoundException: word.txt (The system cannot find the file specified) at java.io.FileInputStream.open(Native Method) at java.io.FileInputStream.(Unknown Source) at java.util.Scanner.(Unknown Source) at Hangman1.main(Hangman1.java:6)

这是我的代码:

import java.io.File; import java.util.*; public class Hangman1 { public static void main(String[] args) throws Exception { Scanner input = new Scanner(new File("word.txt")); String in = ""; in = input.nextLine(); } }

具有讽刺意味的是,我在我的java文件所在的同一目录中创build了“word.txt”文件,但仍然给我这个错误。

直接把word.txt作为项目的根文件夹和src的一个子项

Project_Root src word.txt

免责声明:我想解释为什么这种情况适用于这种情况,为什么它可能不适用于其他人。

为什么它的作品:

当您使用File或任何其他FileXxx变体时,您正在文件系统上查找与“工作目录”相关的文件。 工作目录,可以这样描述:

当你从命令行运行

C:\EclipseWorkspace\ProjectRoot\bin > java com.mypackage.Hangman1

工作目录是C:\EclipseWorkspace\ProjectRoot\bin 。 用你的IDE(至less我所有的工作),工作目录是ProjectRoot 。 因此,当文件在ProjectRoot ,只使用文件名作为相对path是有效的,因为它位于工作目录的根目录。

同样,如果这是您的项目结构ProjectRoot\src\word.txt ,那么path"src/word.txt"将是有效的。

为什么它可能不起作用

首先,工作目录可以随时更改。 例如,像上面例子那样从命令行运行代码,工作目录就是bin 。 所以在这种情况下,它会失败,因为没有bin\word.txt

其次,如果你要将这个项目导出到一个jar文件中,并且configuration文件被包含在jar文件中,它也会失败,因为这个path将不再有效。

这就是说,你需要确定文件是否是一个embedded式资源 (或只是“资源” – 有时我会交替使用的术语)。 如果是这样,那么你将要build立的文件到类path,并通过URL访问它。 首先你需要做的(在这个特定的情况下)是确保文件内置到类path。 使用项目根目录中的文件,您必须configuration构build以包含文件。 但是如果你把文件放在src或下面的某个目录中,那么默认的构build应该把它放到类path中。

您可以通过多种方式访问​​类path资源。 您可以使用具有getResourceXxx方法的Class类来从中获取类path资源。

例如,如果将项目结构更改为ProjectRoot\src\resources\word.txt ,则可以使用以下命令:

InputStream is = Hangman1.class.getResourceAsStream("/resources/word.txt"); BufferedReader reader = new BufferedReader(new InputStreamReader(is));

getResourceAsStream返回一个InputStream ,但是获得一个URL。 或者,你可以得到一个URL如果这是你所需要的。 getResource()将返回一个URL

对于Maven用户,其目录结构与src/main/resources类似, resources文件夹的内容放在classpath的根目录下。 所以如果你有一个文件,那么你只能使用getResourceAsStream("/thefile.txt")

可以使用相对path,但可能会非常棘手。 最好的解决办法是知道你的文件在哪里被保存,也就是打印文件夹:

import java.io.File; import java.util.*; public class Hangman1 { public static void main(String[] args) throws Exception { File myFile = new File("word.txt"); System.out.println("Attempting to read from file in: "+myFile.getCanonicalPath()); Scanner input = new Scanner(myFile); String in = ""; in = input.nextLine(); } }

这段代码应该打印它正在寻找的文件夹。 把文件放在那里,你会很好走。

您的文件应该直接在项目文件夹下,而不是在任何其他子文件夹内。

如果您的项目的文件夹名称为例如AProject ,它应该在您的src文件夹在相同的地方。

Aproject src word.txt

我认为它总是沸腾到classpath 。 如果你从你的.class文件所在的同一个文件夹中运行,那么改变Scanner input = new Scanner(new File("word.txt")); Scanner input = new Scanner(new File("./word.txt")); 这应该工作

System.out.println("To Read the file"+input.getCanonicalPath()); try to put it...in your code....

确保在创build一个txt文件时,不要input名称“name.txt”,只需input“name”。 如果你input“name.txt”,Eclipse会将其视为“name.txt.txt”。 这为我解决了。 还要将文件保存在src文件夹中,而不是.java所在的文件夹,一个文件夹。

我正在阅读属性文件的path,并没有提到最后有一个空间。 确保你没有一个。

编程时java找不到文件_java.io.FileNotFoundException:系统找不到指定的文件相关推荐

  1. java保存文件的时候提示系统找不到路径_java.io.FileNotFoundException (系统找不到指定的路径。)...

    发生这个问题的原因,主要是因为,您登录Windows(Win7.Vista.XP等)的用户名是中文名,或者您指定安装的路径里面包含中文等字符. 是的,虽然VirtualBox本身支持简体中文,但是对这 ...

  2. 记录一个bug 关于 java 解压缩包 写入本地报错 :java.io.FileNotFoundException(系统找不到指定的路径。)

    记录一个bug 关于 java 解压缩包 写入本地报错 :java.io.FileNotFoundException(系统找不到指定的路径.) 第一想法是路径问题: 1.检查文件路径是否正确 2.另外 ...

  3. 【Java报错找不到指定文件】Exception in thread “main“ java.io.FileNotFoundException:...... (系统找不到指定的文件。)

    出错代码 (这段代码位于Src_exp2_3.java中) public static String getValue(String key) throws IOException{Propertie ...

  4. Java如何获取IP属地 ip2region failed to create searcher with x:java.io.FileNotFoundException:( 系统找不到指定的路径)

    目录 引言 获取ip地址 使用ServerHttpRequest获取ip完整地址: 获取ip地址的源代码 接口调用源代码 使用HttpServletRequest获取ip完整地址 获取ip地址的源代码 ...

  5. java.io.FileNotFoundException系统找不到指定文件(已解决)

    使用Spring框架时,import包找不到指定文件 需要在resources下创建一个空文件夹,把要导入的文件放到文件夹下就可以了.

  6. 使用createNewFile时报错:java.io.IOException: 系统找不到指定的路径

    在使用createNewFile方法时,报java.io.IOException: 系统找不到指定的路径.这个错误. 是因为在使用构造方法时,使用的**File(String pathname)路径名 ...

  7. java文件流写入文件_JAVA IO流编程 实现文件的写入、写出以及拷贝

    一.流的概念 流:数据在数据源(文件)和程序(内存)之间经历的路径. 输入流:数据从数据源(文件)到程序(内存)的路径. 输出流:数据从程序(内存)到数据源(文件)的路径. 以内存为参照,如果数据向内 ...

  8. java web 加载类_Java中用ClassLoader载入各种资源(类、文件、web资源)的方法

    lassLoader主要对类的请求提供服务,当JVM需要某类时,它根据名称向ClassLoader要求这个类,然后由ClassLoader返回这个类的class对象. ClassLoader负责载入系 ...

  9. java zip 解压 密码_Java解压和压缩带密码的zip文件过程详解

    前言 JDK自带的ZIP操作接口(java.util.zip包,请参看文章末尾的博客链接)并不支持密码,甚至也不支持中文文件名. 为了解决ZIP压缩文件的密码问题,在网上搜索良久,终于找到了winzi ...

最新文章

  1. 查看jks文件中的签名
  2. MySQL唯一索引与主键的区别:主键相当于一本书的页码,索引相当于书的目录
  3. 8.4 parted:磁盘分区工具
  4. Spark2.4.0 SparkEnv 源码分析
  5. 神经网络(11)--具体实现:unrolling parameters
  6. 新ANTLR 4.6的重要更改
  7. 龙头地位无可撼动!腾讯占全球游戏市场15% 连续6年登营收榜首
  8. Android 获取手机的厂商、型号、Android系统版本号、IMEI、当前系统语言等工具类...
  9. 剑指Offer之包含min函数的栈
  10. 孔板流量计计算公式_带你全面了解各种流量计!
  11. 理解position:relative 与 position:absolute
  12. 2021-04-23 - TS型网页视频下载 - 学习/实践
  13. java获取.py文件值_Java File文件处理 读文件
  14. kuwo.php源码,酷我音乐官方flash播放器调用代码
  15. 世界时间经纬_世界纬度和经度地图
  16. One or more files are in a conflicted state——解决代码冲突
  17. APP开发:线上教育APP盈利模式分析
  18. 业务中台-业务架构图
  19. adobe acrobat reader安装教程
  20. 北斗导航 | 卫星信号总结(卫星系统、频点、频率、编码、速率、调制方式等等)

热门文章

  1. 从0到1编写个人博客项目使用springboot+vue(前后端分离) 到 购买服务器上传项目 到 GitHub开源项目、此过程下所遇问题及解决方法,至少你帮你少走70%弯路
  2. “智慧青岛”里的海信力量
  3. python程序运行结果不停_关于python:在进程运行时不断打印Subprocess输出
  4. 子苗教育:抖音游戏推广怎么没有链接?
  5. 高校实验室信息管理系统需求分析
  6. javaweb网页上传图片并显示在页面上,并在服务端存到磁盘(base64编码解码)
  7. 观《加缪诺奖获奖感言》有感
  8. Gerrit快速安装手册
  9. 基于图像的三维重建——基于空间patch扩散的方法(PMVS)
  10. 预防甲型流感病毒的注意事项和方法