android或者java 打开文件出现java.io.FileNotFoundException的解决方案

      本人今天下午调试android程序的过程中,老是出现程序java.io.FileNotFoundException的异常,我纳闷急了,因为这个问题对于我来说本来是个非常简单的问题,但是却花了两个小时调试,的确有些郁闷,但是既然要花这么长时间调试,自然就有其问题的隐蔽性,于是我想对java.io.FileNotFoundException的出现的场景及其解决方案做个简要的总结。 

       在编写android中出现出现java.io.FileNotFoundException的异常的时候我们首先会认为肯定是权限的问题,但是请不要轻易的下定论,于是想到的是添加如下权限

<uses-permission android:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS"/>  
    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>

事实上如果你的错误提示中出现了诸如permission denied 的字眼或者某些告诉你你的程序的权限不顾的字眼的时候你完全有理由这么做。

但如果你的错误提示中没有出现相关的字眼你就要考虑是不是其他原因导致了这个结果。

假设你的程序中出现了如下的错误提示,你就需要考虑是不是你的代码在打开一个不存在的目录项,如果是目录项不存在的话,请在程序中先确保目录项的存在性,可以先创建一个目录项。

java.io.FileNotFoundException: D:\jackli\hello.txt (系统找不到指定的路径。)
	at java.io.FileOutputStream.open(Native Method)
	at java.io.FileOutputStream.<init>(Unknown Source)
	at java.io.FileOutputStream.<init>(Unknown Source)
	at Test.main(Test.java:19)

最后面再来看一下还有一种错误提示,那就是文件名的使用有错,比如出新了非法字符,这个往往是在网络编程的时候比较容易出现。就像今天我的程序就是这样的,我发现由于网络传输过来的字符串看上去是正确的,但是却在文件名的末尾出现了一个非法字符'\n',这个真是很难发现的一个错误啊,以至于我花了两小时来找这个错误。

希望这个能对大家有所帮助。



  • 2
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
java.io.FileNotFoundExceptionJava中的一个异常类,表示无法找到指定的文件或目录。它通常在文件操作中出现,当尝试打开或读取一个不存在的文件时会抛出该异常。 引用中的错误信息显示了一个java.io.FileNotFoundException异常的示例。该异常的原因是拒绝访问,可能是由于文件不存在或者没有足够的权限来访问该文件。 引用提到了可能导致java.io.FileNotFoundException异常的两个原因。第一个原因是文件不存在,即指定的文件路径不正确或文件被删除。第二个原因是权限被拒绝,即当前用户没有足够的权限来访问该文件。 如果你遇到java.io.FileNotFoundException异常,你可以按照以下步骤来解决问题: 1. 确保文件路径正确:检查文件路径是否正确,包括文件名和文件所在的目录路径。 2. 检查文件是否存在:确认文件是否存在于指定的路径中。你可以使用文件对象的exists()方法来检查文件是否存在。 3. 检查文件权限:如果文件存在但仍然抛出java.io.FileNotFoundException异常,那么可能是由于权限问题。你可以检查当前用户是否具有足够的权限来访问该文件。 以下是一个示例代码,演示了如何处理java.io.FileNotFoundException异常: ```java import java.io.File; import java.io.FileNotFoundException; public class FileExample { public static void main(String[] args) { String filePath = "path/to/your/file.txt"; File file = new File(filePath); try { // 尝试打开文件 Scanner scanner = new Scanner(file); // 读取文件内容 while (scanner.hasNextLine()) { String line = scanner.nextLine(); System.out.println(line); } // 关闭文件 scanner.close(); } catch (FileNotFoundException e) { // 处理文件不存在的情况 System.out.println("文件不存在:" + e.getMessage()); } } } ```

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值