java如何获取classpath中某文件的输出流
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java如何获取classpath中某文件的输出流相关的知识,希望对你有一定的参考价值。
已经知道可以获取到道歉ClassLoader来获取到文件的输入流,只要文件在classpath中。
如果想要改变并写回文件,怎么获取输出流,我查了下ClassLoader没相关方法
getResourceAsStreampublic InputStreamgetResourceAsStream(String name)查找具有给定名称的资源。查找与给定类相关的资源的规则是通过定义类的 class loader
实现的。此方法委托此对象的类加载器。如果此对象通过引导类加载器加载,则此方法将委托给 ClassLoader.getSystemResourceAsStream(java.lang.String)。
在委托前,使用下面的算法从给定的资源名构造一个绝对资源名:
如果 name 以 '/' 开始 ('\\u002f'),则绝对资源名是 '/'
后面的 name 的一部分。
否则,绝对名具有以下形式:
modified_package_name/name其中 modified_package_name 是此对象的包名,该名用 '/' 取代了 '.'
('\\u002e')。
有问题再追问,good luck!
参考技术A import java.io.FileNotFoundException;import java.io.FileOutputStream;
import java.io.IOException;
import java.io.OutputStream;
import java.net.URL;
import java.text.ParseException;
public class Test
public String hello(String name)
return "hello" + name;
public static void main(String args[]) throws ParseException, IOException
URL file = Test.class.getClassLoader().getResource("");
System.out.println(file.getFile()+"a.txt");
try
System.out.println(file.getFile()+"a.txt");
FileOutputStream fo = new FileOutputStream(file.getFile()+"a.txt");
System.out.println(file.getFile()+"a.txt");
String a = "aaaa";
fo.write(a.getBytes());
catch (FileNotFoundException e)
// TODO Auto-generated catch block
e.printStackTrace();
我随便写了个,大致思想是 获得了路径后,当然能获得具体的输出流了本回答被提问者采纳
以上是关于java如何获取classpath中某文件的输出流的主要内容,如果未能解决你的问题,请参考以下文章
JAVA:已知获取文件的输出流ouputStream,怎么转换为文件