Java 读取jar内的文件的超简便方法
坑爹的java课程设计,偏要用jar来运行
读取、存储jar内文件的支持也好低
存储方法:
进入jar文件其实没有说的那么困难,jar文件本质是一个zip格式的压缩文件,只是把文件后缀名改了,要用Java读取里面的文件也没有那么想象的那么困难。使用相关协议就可以:
例如:c盘根目录有一个test.jar文件文件里面有个a.txt文件我们就读取这个a.txt文件
文件对应的URL:
jar:file:/C:/test.jar!/a.txt
import java.io.IOException;
import java.io.InputStream;
import java.net.URL; public class TestDouble {
public static void main(String[] args) throws IOException {
URL url=new URL("jar:file:/C:/test.jar!/a.txt");
System.out.println(url);
InputStream is=url.openStream();
byte b[]=new byte[1000];
is.read(b);
System.out.println(new String(b).trim());
}
}
如果想不依赖绝对路径,那就先获取运行jar时候的当前绝对路径,然后加上要读的目录
把方法内换一下
String jarPath = Main.class.getProtectionDomain().getCodeSource().getLocation().getFile();
URL url=new URL("jar:file:" + jarPath + "!/in.txt");
关于存储。jar的设计理念就是一个只读文件,查了java文档,有个java.util.jar.JarOutputString,不过不是很好用
Java 读取jar内的文件的超简便方法的更多相关文章
- java读取各类型的文件
java读取各类型的文件 用到的几个包 bcmail-jdk14-132.jar/bcprov-jdk14-132.jar/checkstyle-all-4.2.jar/FontBox-0.1.0-d ...
- Java读取并下载网络文件
CreateTime--2017年8月21日10:11:07 Author:Marydon import java.io.ByteArrayOutputStream; import java.io ...
- 解决springboot读取jar包中文件的问题
转载自: https://www.oschina.net/question/2272552_2269641 https://stackoverflow.com/questions/25869428/c ...
- Java读取Level-1行情dbf文件极致优化(3)
最近架构一个项目,实现行情的接入和分发,需要达到极致的低时延特性,这对于证券系统是非常重要的.接入的行情源是可以配置,既可以是Level-1,也可以是Level-2或其他第三方的源.虽然Level-1 ...
- Java读取Level-1行情dbf文件极致优化(2)
最近架构一个项目,实现行情的接入和分发,需要达到极致的低时延特性,这对于证券系统是非常重要的.接入的行情源是可以配置,既可以是Level-1,也可以是Level-2或其他第三方的源.虽然Level-1 ...
- JAVA中比较两个文件夹不同的方法
JAVA中比较两个文件夹不同的方法,可以通过两步来完成,首先遍历获取到文件夹下的所有文件夹和文件,再通过文件路径和文件的MD5值来判断文件的异同.具体例子如下: public class TestFo ...
- 读取jar内的配置文件
读取jar包内的配置文件,可以使用ResourceBundle,具体具体例子如下 import java.io.BufferedInputStream; import java.io.IOExcept ...
- java 读取本地的json文件
首先,要先去下载相关的jar包,否则你是无法做到的. 在百度或者谷歌里面输入java json jar包下载就行了(共7个包). xom-1.1.jar ezmorph-1.0.6.jar json ...
- Java读取CSV和XML文件方法
游戏开发中,读取策划给的配置表是必不可少的,我在之前公司,策划给的是xml表来读取,现在公司策划给的是CSV表来读取,其实大同小异,也并不是什么难点,我就简单分享下Java如何读取XML文件和CSV文 ...
随机推荐
- mac下finder子目录直接打开终端
macstore下载go2shell,放你喜欢的目录,按住command,拖动到finder顶部的工具栏即可 终端直接打开finder,终端输入 open . 注意,后面红色的点,表明当前目录
- Linux之安装软件
1. 下载获得redis-3.0.4.tar.gz后将它放入我们的Linux目录/opt 2. 在SecureCRT界面上点SecureFX图标 在本地窗口中找到要上传的文件 在要上传的文件上点右键 ...
- (转)SQL server 2005查询数据库表的数量和表的数据量
本文转载自:http://hi.baidu.com/ajyajyajy/item/4e2a7f4dc83393d2c1a592c1 use DBNAMEgoselect * from sysobjec ...
- TimesTen学习(三)安装、连接、远程连接TimesTen数据库
TimesTen学习(三)远程连接TimesTen数据库 <TimesTen学习(一)安装篇>:http://blog.itpub.net/23135684/viewspace-71774 ...
- PHP 循环删除无限分类子节点
<?php private function _deleteSubNode($ids){ $subNodes = array(); $mod = D('Node'); foreach (expl ...
- CentOS下j2ee环境搭建
转自:http://www.cnblogs.com/xiaoluo501395377/archive/2013/04/01/2994485.html 因为是做j2ee后台开发的,所以在Linux上搭建 ...
- python学习 (二十九) range函数
1:list函数可以将其他类型转成list. print(list(range(0, 10))) 2: list函数把元组转成list t = (1, 3, 3, 5) print(list(t)) ...
- C++常考算法
1 strcpy, char * strcpy(char* target, char* source){ // 不返回const char*, 因为如果用strlen(strcpy(xx,xxx)) ...
- MongoDB day02
1.非关系型数据库和关系型数据库比较 1. 不是以关系模型构建的,结构自由 2. 非关系型数据库不保证数据的一致性 3. 非关系型数据库可以在处理高并发和海量数据时弥补关系型数据库的不足 4. 非关系 ...
- Oracle 热备份
Oracle 热备份是指数据库处于open状态下,对数据库的数据文件.控制文件.参数文件.密码文件等进行一系列备份操作. 热备是基于用户管理备份恢复的一种方式,也是除了RMAN备份之外较为常用的一种备 ...