WritableResource写文件ClassPathResource读文件

package com.test.m2.t1;

import java.io.ByteArrayOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;

import org.springframework.core.io.ClassPathResource;
import org.springframework.core.io.PathResource;
import org.springframework.core.io.Resource;
import org.springframework.core.io.WritableResource;


public class TCar {

	public static void main(String[] args) throws Exception{
		m1();
		m2();
	}
	
	/**
	 * 这种方式打包后,无法运行,无法在jar包加载文件,需要分离出来
	 * @throws IOException
	 */
	public static void m1() throws IOException{
//		String path=System.getProperty("user.dir")+"/src/main/resources/conf/1.txt"; (1)
		String path="src/main/resources/conf/1.txt"; //(2)   (1)(2)都可以,
		path = path.replace("\\", "/");
		WritableResource pathResource = new PathResource(path);
		OutputStream os = pathResource.getOutputStream();
		os.write("你好123".getBytes());
		os.close();
		System.out.println("-------------------->:ok");
	}
	
	/**
	 * 读取classpath下的文件,打成jar仍可用
	 * @throws IOException
	 */
	public static void m2() throws IOException{
		Resource r1=new ClassPathResource("conf/1.txt");
		InputStream is = r1.getInputStream();
		int n;
		ByteArrayOutputStream bos = new ByteArrayOutputStream();
		while((n=is.read())!=-1){
			bos.write(n);
		}
		System.out.println(bos.toString());
		bos.close();is.close();
		
	}
}

你可能感兴趣的:(javase)