javaIO操作在打包后经常会报出文件找不到的错误:

java.io.FileNotFoundException: D:\package\bbb\history.xml (系统找不到指定的文件。)

那是因为Java程序打包后的程序目录结构会发生一定的变化,这会对文件读写操作产生直接影响,所以如果需要将一段程序打成jar包那就不能用简单的绝对或者相对路径进行文件操作。
解决方法:

需求只需要读文件

 filePath = FilesUtils.class.getClassLoader().getResource("history.xml").getPath();//判断文件是否存在File file = new File(filePath);System.out.println(file2.exists());

可根据需求进行调节getResource()会返回一个代表文件路径url对象,getPath()方法会返回需要读取文件的路径字符串,依靠这个方法就可以在jar包中动态的获取文件路径。

需求需要读写文件

由于压缩包中的文件只支持读操作,如果对文件进行写入会报错误,所以如果文件要支持读写需要另一种思路。
首先将需要读取的文件和jar包放在同一目录下:

通过如下代码获取路径

filePath = System.getProperty("user.dir").replace("\\", "/")+"/history.xml";
//判断文件是否存在
File file = new File(filePath);
System.out.println(file2.exists());

如果需要生成exe可执行文件,(不会生成可以参考这里)对于外部这个需要读写的文件,在exe4j生成过程中不用添加任何操作,在使用inno setup打成安装包(生成和打包过程链接中有)时需要在[Files]处加上一行:

Source: "D:\package\bbb\history.xml"; DestDir: "{app}"; Flags: ignoreversion


把D:\package\bbb\history.xml改为你的文件路径。以上就是打包后文件的读写方法。

Java打包后读文件和写文件操作方法相关推荐

  1. Python读文件与写文件

    Python读文件与写文件 Date TempHighF TempAvgF TempLowF 2019/1/10 72 65 57 2019/1/11 75 62 48 2019/1/12 67 57 ...

  2. springboot打包后jar itext读取字体文件处理

    springboot打包后jar itext读取字体文件处理 springboot打包后无法读取文件 通过 InputStream stream = Thread.currentThread().ge ...

  3. Python 基础 文件操作——写文件

    前提,通过内置命令open以写模式打开文件后,才能进行写文件的操作: 值得注意的是,在进行完操作之后要用命令close关闭文件. 1.用file对象的write()方法写文件 write()方法将指定 ...

  4. Java读文件和写文件

    import java.io.*;public class FileTest {String path = "C:\\Users\\Desktop\\test.txt";File ...

  5. java 打包后 文件资源文件 jar,JAVA打包成JAR无法找到资源文件

    源程序: package org.lza; import java.io.*; public class test{ public static void main(String[] args)thr ...

  6. java 追加写入hdfs_java操作之HDFS-创建-删除目录-读写文件-追加写文件

    Hadoop文件操作之HDFS,创建.删除目录,读写文件,追加写文件 package hadoop.hadoop_demo; import java.io.InputStream; import ja ...

  7. HDFS的读文件、写文件过程

    目录 HDFS的重要特性 HDFS写数据分析 HDFS读数据分析 HDFS删除数据分析 NameNode元数据管理原理分析 HDFS的重要特性 HDFS是一个分布式文件系统,通过统一的命名空间(类似于 ...

  8. 操作系统之文件管理:6、文件的基本操作(创建文件、打开文件、删除文件、关闭文件、读文件、写文件)

    5.文件的基本操作 思维导图 文件操作 创建文件 删除文件 读文件 写文件 打开文件 关闭文件 思维导图 文件操作 创建文件 删除文件 读文件 写文件 打开文件 1.在系统中有一张系统的文件打开表,用 ...

  9. .dat文件写入byte类型数组_Go语言学习基础-读文件、写文件、行过滤器

    Reading File 读文件 读写文件是许多Go程序所需的基本任务.首先,我们将看一些读取文件的示例.读取文件需要检查是否出现调用错误. 最基本的文件读取任务是将文件的全部内容读到内存中iouti ...

最新文章

  1. 云上建站快速入门:博客、论坛、CMS、电子商务网站统统搞定
  2. Windows2003使用WEB方式修改域用户密码
  3. android的签名问题
  4. 译注(3): NULL-计算机科学上最糟糕的失误
  5. 理解C# 4 dynamic(2) – ExpandoObject的使用
  6. MATLAB下数组随机打乱顺序的方法
  7. SecureCRT 用来当串口工具的设置
  8. UVAL - 6755 - Swyper Keyboard
  9. 顺便抹了下眼眶的飞鸽传书官方网站
  10. 程序员专属段子集锦 7/10
  11. Dubbo服务暴露(导出)流程
  12. c语言gga字符串校验和代码,NEMA-0183(GPGGA,GPRMC,GPGSA,GPGSV,GPVTG)详解,并附解析代码(C语言版)...
  13. 家庭wifi部署建议
  14. 基于FPGA的DHT11数字温湿度传感器测试
  15. vmware虚拟机ping不通主机
  16. 压缩包里面是html文件怎么打开方式,解决电脑rar压缩包文件怎么打开?教你正确打开方式...
  17. Linux常用命令——rsync命令
  18. test_and_set_bit
  19. 「CSA49」Bunny on Number Line
  20. 艾瑞报告| 中国 IoT 物联网行业研究

热门文章

  1. rocketmq怎么保证数据不会重复_阿里架构师亲授:Kafka和RocketMQ的消息复制实现的差异点在哪?...
  2. linux c 网络事件 通知,深入理解Linux网络技术内幕—通知链
  3. Django 模板中 变量 过滤器 标签 的使用方法
  4. chattr 改变文件的扩展属性
  5. Oracle数据库SqlLoad常用技巧总结word版
  6. 把Excel中的数据转换成Sql语句
  7. Client访问Tomcat简单流程(Struts2)
  8. 平面直角坐标系中的旋转公式_【数理之路】初中范围推导三角函数倍角正弦公式...
  9. Nginx之配置后端服务器组
  10. JDK1.8 HashSet