java IO流抛出FileNotFoundException问题

文件未找到异常 [java.io.FileNotFoundException 通过正确处理文件未找到异常,您可以确保您的应用程序在遇到文件丢失问题时能够正确地处理,并提供适当的反馈给用户。当您在编写Java应用程序时,可能会遇到一个常见的异常,即文件未找到异常(java.io.FileNotFoundException)。这个异常表示您的程序无法找到所需的文件,无论是读取还是写入操作。文件路径错误:如果文件的路径不正确,Java将无法找到文件。文件不存在:如果要打开的文件实际上不存在于指定的路径中,该异常将被抛出。检查文件路径:确保文件的路径是正确的,并且您使用的是正确的分隔符。 阅读详情

在我们使用java的IO流操作文件时,发现IO流中的FileNotFoundException的抛出条件极其奇怪,点进去看源码,发现构造函数打开文件是使用的IoBridge.open(file.getPath(), mode);而其中的IoBridge应该是底层的代码了,看不见源码,只能自己写demo测试:
测试思路是这样的,FileNotFoundException意思即为文件未找到,文件未找到有两种情况:磁盘中没有该文件和磁盘中没有该文件的文件夹,以下分别做测试.测试代码如下:

import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;

public class FileDemo {

    public static void main(String[] args) {

        String fileString = "C:/Users/wsd/Desktop/a/output.txt";
        String file1String = "C:/Users/wsd/Desktop/a/input.txt";

        File file = new File(fileString);
        try {
            FileOutputStream fos = new FileOutputStream(file);
            byte[] b = {'a','b','c','d'};
            fos.write(b);
            fos.close();
            System.out.println("file output without FileNotFoundException");
        } catch (FileNotFoundException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        }

        File file1 = new File(file1String);
        try {
            FileInputStream fis = new FileInputStream(file1);
            fis.read();
            fis.close();
            System.out.println("file input without FileNotFoundException");
        } catch (FileNotFoundException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        }
    }

}
先测试:
String fileString = "C:/Users/wsd/Desktop/output.txt";
String file1String = "C:/Users/wsd/Desktop/input.txt";
上面两个文件均不存在,文件夹存在,运行结果如下:
file output without FileNotFoundException
java.io.FileNotFoundException: C:\Users\wsd\Desktop\input.txt (系统找不到指定的文件。)
    at java.io.FileInputStream.open(Native Method)
    at java.io.FileInputStream.<init>(FileInputStream.java:146)
    at FileDemo.main(FileDemo.java:29)

桌面能找到output.txt文件,内容为:abcd

再测试:
String fileString = "C:/Users/wsd/Desktop/a/output.txt";
String file1String = "C:/Users/wsd/Desktop/a/input.txt";
上面的目录a不存在,运行结果如下:
java.io.FileNotFoundException: C:\Users\wsd\Desktop\a\output.txt (系统找不到指定的路径。)
    at java.io.FileOutputStream.open(Native Method)
    at java.io.FileOutputStream.<init>(FileOutputStream.java:221)
    at java.io.FileOutputStream.<init>(FileOutputStream.java:171)
    at FileDemo.main(FileDemo.java:16)
java.io.FileNotFoundException: C:\Users\wsd\Desktop\a\input.txt (系统找不到指定的路径。)
    at java.io.FileInputStream.open(Native Method)
    at java.io.FileInputStream.<init>(FileInputStream.java:146)
    at FileDemo.main(FileDemo.java:29)

从上面的测试可以得出结论:
在使用输出流时:
1. 如果文件不存在,文件夹存在,会自动创建文件,并写入
2. 如果文件夹不存在,抛出FileNotFoundException异常

在使用输入流时:
1. 不管文件夹存在与否,只要文件不存在,抛出FileNotFoundException异常

备注:这有点像c语言中的fopen()函数指定打开方式时的结论,或者本来就是?

Android java.io.FileNotFoundException:*** (Permission denied) 大家都知道,Android 6.0中,某些权限属于Protected Permission,例如:读写手机存储权限,仅仅在AndroidManifest.xml中申明是无法真正获取到权限的,打开手机的权限管理页面,我们可以看见,读写手机存储权限栏是一个问号,这意味着App并未获取到该权限。 这是访问手机存储时,会报出类似下面的错误: java.io.FileNotFoundException:**... 阅读详情

相关推荐

伺服驱动器485通信

485通信使用方法,485通信在上位机和伺服驱动器之间的应用,根据需要驱动电机旋转。

haipi511715316的博客 1万+

android解压zip时,提示解压失败

错误日志: 01-04 11:10:19.183: W/System.err(5888): java.io.FileNotFoundException: /storage/emulated/0/payeasy/html/_6c34_7535_7164/css/dialog.css: open failed: EBUSY (Device or resource busy) 01-04 11:10

移动开发学习笔记 6774

从零构建腾讯滑块验证码破解引擎:逆向工程与实战对抗

本文深入解析腾讯滑块验证码(原天御验证码)的防护机制,包括环境感知层、行为分析层和验证决策层的核心技术。通过JSVMP虚拟机保护、轨迹验证算法和动态加密体系,腾讯验证码实现了高效的人机识别。文章还提供了安全研究实践指南,涵盖环境模拟和验证码识别方案,并探讨了防御对抗的演进趋势与合规研究建议。

rl6adventurer的博客 830

java关于FileInputStream使用相对路径时 运行报错的原因

java关于FileInputStream使用相对路径时 运行报错的原因

caixukundidi的博客 6364

探索如何利用CST和ADS进行DDR的SIPI联合仿真

本文系统介绍了CST和ADS两款工具进行DDR信号完整性/电源完整性(SI/PI)联合仿真的方法。CST采用工作室协同方式,通过PCB布局导入、材料设置、模型分配等步骤,重点分析了电源阻抗优化和信号波形质量。ADS则利用SIPro、PIPro等专用工具,突出系统级验证和自动化优化功能。两者各有优势:CST擅长3D结构精确建模,ADS更适于快速系统验证。文章建议可根据项目需求混合使用两种工具,并提供了模型简化、频带选择等实用技巧。通过对比分析,为工程师选择仿真工具提供了决策参考。

一只豌豆象的博客 1150

使用Clumsy和Process Explorer定位软件高CPU占用问题

使用弱网模拟工具Clumsy和进程查看工具Process Explorer定位软件高CPU占用问题。

dvlinker的技术专栏 5706

Java 异常

常见运行时异常 1) NullPointerException 空指针异常 2) ArithmeticException 数学运算异常 3) ArrayIndexOutOfBoundsException 数组下标越界异常 4) ClassCastException 类型转换异常 5) NumberFormatException 数字格式不正确异常[] 常见编译时异常 RuntimeException 属于运行时异常,FileNotFoundException ...

Meikesibondwell的博客 539

【3天快速入门WPF】8-数据绑定基础

以下是一个简单的 WPF 数据绑定示例,使用两个TextBox控件分别表示Name和Age来进行进行数据绑定试验。运行程序后,你会看到初始界面中TextBox 中显示初始名字 “张三”,TextBox 中显示初始年龄 “25”。在 XAML 中创建一个简单的界面,包含一个 TextBox 用于输入名字,一个 TextBox 用于显示年龄。当你在 TextBox 中修改名字时,Person 对象的 Name 属性会被自动更新,反之亦然。它的主要作用是为控件及其子控件提供一个默认的数据源,用于数据绑定。

Zy100Papa的博客 969

Android FileInputStream 和FileOutputStream 分析

简介 Java中针对文件的读写操作设置了一系列的流,其中主要有FileInputStream,FileOutputStream,FileReader,FileWriter四种最为常用的流。其余流操作类的都是对这四种流的一种包装了。其实严格意义来说的话FileWrite和FileReader其实也是对FileOutputStream和FileInputStream的一种包装的,都是通过对字节流的处理...

寻梦者 4701

使用 Python 爬虫抓取 IMDb 电影信息 - 评分、评论与基本信息抓取教程

本文介绍了如何使用 Python 爬虫技术抓取 IMDb 电影评分、评论和基本信息。我们分别展示了通过IMDb API和两种方法抓取数据,并进行了数据存储、分析与可视化。在未来,我们还可以基于这些数据开发电影推荐系统、情感分析工具等,进一步丰富电影数据的应用场景。通过这些实践,您不仅学会了如何抓取和存储数据,还可以通过这些基础来构建自己的数据分析应用,获取更丰富的电影数据。

2201_76125261的博客 601

RK3568平台开发系列讲解(外设篇)CAN的使用

📢 本篇章带大家快速了解CAN的使用。

内核笔记 2352

javaweb上传文件报: java.io.FileNotFoundException:xxxat java.io.FileOutputStream.open0(Native Method)

1、上传文件并将该文件保存到tomcate中的webapp中,报错如下 2、原因为file文件没找到 3、解决方法,若文件不存在时就创建文件

ljj123_的博客 1万+

YOLOv13改进策略【特征提取层】| 引入注意力卷积模块RFAConv,关注感受野空间特征 助力yolov13精度提升

RFAConv:创新空间注意力和标准卷积运算感受野空间特征是针对卷积核设计的,根据卷积核大小动态生成。以3×3卷积核为例,它由非重叠滑动窗口组成,每个窗口代表一个感受野滑块。

Limiiiing的博客 360

关于IO流在复制文件时出现java.io.FileNotFoundException: D:\xxx (拒绝访问。) 拒绝访问的问题

关于IO流在复制文件时出现java.io.FileNotFoundException: D:\xxx(拒绝访问。) 拒绝访问的问题 Exception in thread "main" java.io.FileNotFoundException: D:\xxx (拒绝访问。) at java.io.FileInputStream.open0(Native Method) at java.

M义薄云天的博客 3万+

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

【Java报错已解决】 Java.io.FileNotFoundException

在 Java 开发的过程中,报错信息常常让开发者们感到困扰。其中,Java.io.FileNotFoundException 是一个较为常见的报错。当遇到这个报错时,如何快速有效地解决呢?本文将深入探讨这个问题,为开发者和环境配置者提供详细的解决方案。

鸽芷咕的博客 5215

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

java 关闭IO流后,仍抛FileNotFoundException异常

本文主要记录关于IO流操作时,在关闭IO流后,操作文件所抛出的FileNotFoundException异常!! 源代码如下: /** * ,读取TXT文件,并进行数据处理 */ public static String dealData(String url){ String str = null; File file = new File(url);//new一个Fil...

夏沐的博客 1916

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

java复制文件拒绝访问权限_关于IO流在复制文件时出现java.io.FileNotFoundException: D:\xxx (拒绝访问。) 拒绝访问的问题...

关于IO流在复制文件时出现java.io.FileNotFoundException: D:\xxx(拒绝访问。)拒绝访问的问题Exception in thread "main"java.io.FileNotFoundException: D:\xxx(拒绝访问。)at java.io.FileInputStream.open0(Native Method)at java.io.FileInpu...

weixin_32911063的博客 3559

java.io.FileNotFoundException异常的完美解决方法,亲测有效,嘿嘿嘿

`java.io.FileNotFoundException` 是 Java 在尝试访问一个文件时,如果该文件不存在于指定的路径下,或者由于某种原因(如权限问题、路径错误等)无法被访问时,就会抛出的一个异常。 ### 问题分析 当我们在 Java 程序中执行与文件相关的操作时,比如读取文件内容、写入文件等,如果指定的文件路径不正确或文件不存在,程序就会抛出 `java.io.FileNotFoundException` 异常。 ### 报错原因 1. 文件路径错误:可能是文件路径写错了,或者文件没有

PythonAigc的博客 3万+

【开发问题记录】java.io.IOError: java.io.FileNotFoundException: Invalid file path 的问题定位

结合上面出现异常的位置的代码,可以很快的知道第二次及后续出现的异常是因为第一次加载 Conduits 类执行其静态代码块失败了, 后续加载这个 Conduits 类, 直接不加载, 抛出 NoClasseDefFoundError 这个异常了。oClassDefFoundError 异常可以简单的理解为 Java 编译期能够找得到对应的 Class, 而到了运行时, 找不到合适的 Class。这个文件有异常, 从网上下载了一个正常的, 进行替换后, 还是同样的问题, 也就是。

LCN29的博客 4161

java异步上传文件出现java.io.FileNotFoundException异常

最近做了一个异步上传解析excel功能,最后联调时偶发出现了FileNotFoundException异常: 1、现象 java.io.FileNotFoundException: /tmp/tomcat.4469822161725136903.8080/work/Tomcat/localhost/ROOT/upload_4bed117f_51fb_4d70_b307_fc00edd99e4a_00000029.tmp (No such file or directory) at java.io.Fil

samuBO的博客 5085

java.io.FileNotFoundException与java.io.IOException

FileNotFoundException 开发背景:系统需添加一个我的云盘模块,有文件上传功能,同步上传发现大文件上传很慢,用户等待时间过长,采取了异步上传,发现有时存在系统找不到指定的文件,导致上传失败的问题。 发现问题:网络查找发现是springboot文件上传,会创建临时目录保存临时文件,处理完后会清除。 报错信息如下: java.io.FileNotFoundException: C:\Users\***\work\Catalina\localhost\ROOT\upload_22e25

GetNewPerson的博客 3250

transferto遇到的问题java.io.FileNotFoundException: C:\Users\Administrator\AppData\Local\Temp

transferto遇到的问题java.io.FileNotFoundException: C:\Users\Administrator\AppData\Local\Temp问题描述(image.transferTo(file))解决方法 问题描述(image.transferTo(file)) 今天小编我在一个Spring Cloud项目中写文件或图片上传的过程中遇到了一个问题,就是在使用image.transferTo(file)时报错,错误信息如下: java.io.FileNotFoundExcep

weixin_43370867的博客 1万+

SpringBoot应用集成poi 5.0.0启动报错java.io.FileNotFoundException问题解决

目录 问题描述: 问题描述 最近一个基于SpringBoot的WEB项目因为poi升级到5.0.0导致启动报了很多java.io.FileNotFoundException,全是batik相关的依赖包找不到。但是查看本地运行仓库,这些包都是有的,只是org.apache.tomcat.util.scan.StandardJarScanner这个类扫描的路径出现了错误。一开始以为是pom依赖配置的问题,但费劲心思调整pom都无法解决。详细报错如下: 2021-03-16 13:02:53 [r.

csdn779343484的博客 2797

解决在spring boot打成jar包后读取resource下资源文件抛出 java.io.FileNotFoundException

解决在spring boot打成jar包后读取resource下资源文件抛出 java.io.FileNotFoundException 具体报错如下:file:/data/XXX/xxxx.jar.!/BOOT-INF/classes!/configs/xxxxx.xlsx(No such file or directory), 开发环境spring boot2.15 需求:在resource下需要提供一套excel,world格式供前端下载模板 String file = "static/人员基础信息导

深邃灵魂 5527

Exception in thread “main“ java.io.FileNotFoundException: d:\aaaa\a.txt (系统找不到指定的路径。)

问题 学习IO流时,想换字符持久化到 a.txt 文件中,代码如下: public class Test { public static void main(String[] args) throws IOException { File file=new File("d:/aaaa/a.txt"); if(!file.exists()){ file.mkdirs...

猎人在吃肉 1万+

java filenotfoundexception类_Java filenotfoundexception问题

关于Java filenotfoundexception问题的搜索结果问题【JAVA小白】 问关于java.io.FileNotFoundException: 的问题【JAVA小白】 问关于java.io.FileNotFoundException: 的问题package file;import java.io.File;import java.io.FileInputStream;im...问问...

weixin_42373088的博客 911
上一篇: GCC编译c语言文件
下一篇: c、java移位操作
「已注销」
博客等级 码龄10年 12粉丝 8原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值