Java打包后读文件和写文件操作方法
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打包后读文件和写文件操作方法相关推荐
- Python读文件与写文件
Python读文件与写文件 Date TempHighF TempAvgF TempLowF 2019/1/10 72 65 57 2019/1/11 75 62 48 2019/1/12 67 57 ...
- springboot打包后jar itext读取字体文件处理
springboot打包后jar itext读取字体文件处理 springboot打包后无法读取文件 通过 InputStream stream = Thread.currentThread().ge ...
- Python 基础 文件操作——写文件
前提,通过内置命令open以写模式打开文件后,才能进行写文件的操作: 值得注意的是,在进行完操作之后要用命令close关闭文件. 1.用file对象的write()方法写文件 write()方法将指定 ...
- Java读文件和写文件
import java.io.*;public class FileTest {String path = "C:\\Users\\Desktop\\test.txt";File ...
- java 打包后 文件资源文件 jar,JAVA打包成JAR无法找到资源文件
源程序: package org.lza; import java.io.*; public class test{ public static void main(String[] args)thr ...
- java 追加写入hdfs_java操作之HDFS-创建-删除目录-读写文件-追加写文件
Hadoop文件操作之HDFS,创建.删除目录,读写文件,追加写文件 package hadoop.hadoop_demo; import java.io.InputStream; import ja ...
- HDFS的读文件、写文件过程
目录 HDFS的重要特性 HDFS写数据分析 HDFS读数据分析 HDFS删除数据分析 NameNode元数据管理原理分析 HDFS的重要特性 HDFS是一个分布式文件系统,通过统一的命名空间(类似于 ...
- 操作系统之文件管理:6、文件的基本操作(创建文件、打开文件、删除文件、关闭文件、读文件、写文件)
5.文件的基本操作 思维导图 文件操作 创建文件 删除文件 读文件 写文件 打开文件 关闭文件 思维导图 文件操作 创建文件 删除文件 读文件 写文件 打开文件 1.在系统中有一张系统的文件打开表,用 ...
- .dat文件写入byte类型数组_Go语言学习基础-读文件、写文件、行过滤器
Reading File 读文件 读写文件是许多Go程序所需的基本任务.首先,我们将看一些读取文件的示例.读取文件需要检查是否出现调用错误. 最基本的文件读取任务是将文件的全部内容读到内存中iouti ...
最新文章
- 云上建站快速入门:博客、论坛、CMS、电子商务网站统统搞定
- Windows2003使用WEB方式修改域用户密码
- android的签名问题
- 译注(3): NULL-计算机科学上最糟糕的失误
- 理解C# 4 dynamic(2) – ExpandoObject的使用
- MATLAB下数组随机打乱顺序的方法
- SecureCRT 用来当串口工具的设置
- UVAL - 6755 - Swyper Keyboard
- 顺便抹了下眼眶的飞鸽传书官方网站
- 程序员专属段子集锦 7/10
- Dubbo服务暴露(导出)流程
- c语言gga字符串校验和代码,NEMA-0183(GPGGA,GPRMC,GPGSA,GPGSV,GPVTG)详解,并附解析代码(C语言版)...
- 家庭wifi部署建议
- 基于FPGA的DHT11数字温湿度传感器测试
- vmware虚拟机ping不通主机
- 压缩包里面是html文件怎么打开方式,解决电脑rar压缩包文件怎么打开?教你正确打开方式...
- Linux常用命令——rsync命令
- test_and_set_bit
- 「CSA49」Bunny on Number Line
- 艾瑞报告| 中国 IoT 物联网行业研究
热门文章
- rocketmq怎么保证数据不会重复_阿里架构师亲授:Kafka和RocketMQ的消息复制实现的差异点在哪?...
- linux c 网络事件 通知,深入理解Linux网络技术内幕—通知链
- Django 模板中 变量 过滤器 标签 的使用方法
- chattr 改变文件的扩展属性
- Oracle数据库SqlLoad常用技巧总结word版
- 把Excel中的数据转换成Sql语句
- Client访问Tomcat简单流程(Struts2)
- 平面直角坐标系中的旋转公式_【数理之路】初中范围推导三角函数倍角正弦公式...
- Nginx之配置后端服务器组
- JDK1.8 HashSet