java 读取本jar包内的资源文件

package com.test.io;

import java.io.BufferedInputStream;
import java.io.BufferedOutputStream;
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileOutputStream;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.InputStreamReader;

/**
* 需要在d盘建立临时文件。
* D:\\test\\test2.txt
*
* @author DZIT
*
*/
public class IoTest {

/**
* @param args
*/
public static void main(String[] args) {
// 字符读取写入
BufferedReader in1 = null;
BufferedReader in2 = null;
BufferedWriter ow1 = null;
BufferedWriter ow2 = null;

// 字节读取写入
BufferedInputStream is1 = null;
BufferedOutputStream os1 = null;
try {
// 从class同级文件读取字符数据
in1 = new BufferedReader(new InputStreamReader(IoTest.class
.getClassLoader().getResourceAsStream(
"com/test/io/test.txt"), "utf-8"));
// 写入到文件系统
ow1 = new BufferedWriter(new FileWriter(new File(
"D:\\test\\out1.txt")));

// 从文件系统读取数据
in2 = new BufferedReader(new FileReader("D:\\test\\test2.txt"));
// 写入到文件系统
ow2 = new BufferedWriter(new FileWriter(new File(
"D:\\test\\out2.txt")));

String str = null;
while ((str = in1.readLine()) != null) {
System.out.println(str);
ow1.write(str);
// 换行
ow1.newLine();
// 刷新,否侧可能不出数据
ow1.flush();
}

str = null;
while ((str = in2.readLine()) != null) {
System.out.println(str);
ow2.write(str);
ow2.newLine();
ow2.flush();
}

// 从class同级文件读取字节数据。同理可参照上边从文件系统读取数据。
is1 = new BufferedInputStream(IoTest.class.getClassLoader()
.getResourceAsStream("com/test/io/asd.jpg"));

os1 = new BufferedOutputStream(new FileOutputStream(new File(
"D:\\test\\outImage.jpg")));
byte[] b = new byte[1024];
while (is1.read(b) != -1) {
os1.write(b);
}
os1.flush();

in1.close();
in2.close();
ow1.close();
ow2.close();
is1.close();
os1.close();
} catch (Exception e) {
e.printStackTrace();
}
}
}



//for resource test in jar
try{
[color=red]//读取资源文件,但是打成jar包后会出错。[/color]
ResourceBundleTest test = new ResourceBundleTest();
URL url = test.getClass().getResource("/config/REG_IP1.xsd");
System.out.println("url is ====:" + url.toURI());
FileReader fdata = new FileReader(new File(url.toURI()));

[color=red]//读取资源文件,打成jar包后会也没有问题。[/color]
InputStream in=test.getClass().getResourceAsStream("/config/REG_IP1.xsd");
Reader inreader=new InputStreamReader(in);


//[color=red]读取项目根目录下的文件[/color]
Properties props = new Properties();
props.load(new FileInputStream("db.properties"));
System.out.println("读取项目根目录下的文件");

//[color=red]读取bin目录下的文件。如下示例为 文件放在 src/conf 下的test。property文件。编译后会在bin/conf下[/color]
ResourceBundle bund = ResourceBundle.getBundle("conf.test", Locale.getDefault());
System.out.println("读取bin目录下的文件");

//[color=red]yy.properties应放在/WEB-INF/classes目录[/color]
//ResourceBundle res = ResourceBundle.getBundle("yy.properties");


//[color=red]读取跟当前class相同目录下的文件[/color]
Properties props2=new Properties();
props2.load(ResourceBundleTest.class.getResourceAsStream("ResourceBundleTest.properties"));


}catch(Exception e){
System.out.println("E getResource !!");
}
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值