草庐IT

getResourceAsStream

全部标签

java - getResourceAsStream 没有在 webapp 中加载资源

我有一个Web应用程序,它使用驻留在TOMCAT_HOME/common/lib中的库。该库在类路径的根目录中查找属性文件(在名为ApplicationConfig的类中):ApplicationConfig.class.getResourceAsStream("/hv-application.properties");我的TomcatWeb应用程序包含此属性文件。它在WEB-INF/classes中,这是类路径的根,对吗?但是,在运行时,当它尝试加载属性文件时,它会抛出异常,因为找不到它(getResourceAsStream返回null)。如果我的应用程序是一个简单的、独立的Jav

Java OutputStream 相当于 getClass().getClassLoader().getResourceAsStream()

我正在尝试存储对应用程序属性所做的更改。.properties文件位于resources包中,与包含我的UI和模型的包不同。我使用以下方法打开包裹:this.getClass().getClassLoader().getResourceAsStream("resources/settings.properties")是否有与此等效的功能允许我在同一个.Properties文件中保留对属性类的更改? 最佳答案 一般来说,你不能把东西放回你从类加载器获得的资源中:类加载器资源通常是只读的;即保存在只读文件/只读目录中。如果您从JAR文件

java - getResourceAsStream - 它被读取为什么编码?

我正在使用getResourceAsStream访问本地文件。它假定文件是什么编码? 最佳答案 InputStream没有编码。它们只是字节流。Readers用于带有编码的文本。您可以使用来自InputStream的特定字符集创建一个Reader,如下所示:Readerreader=newInputStreamReader(inputStream,"UTF-8");如果您使用的字符集保证在所有Java平台(如UTF-8)上都受支持,则可以通过使用Guava中的常量来避免处理不可能的UnsupportedEncodingExcepti

java - 写入从 getResourceAsStream() 返回的文件流

我从getResourceAsStream()得到一个InputStream,我设法通过将返回的InputStream传递给一个BufferedReader.有什么方法我也可以写入文件吗? 最佳答案 不直接,不-getResourceAsStream()旨在返回只读资源的View。但是,如果您知道资源是可写文件,则可以跳过一些环节,例如URLresourceUrl=getClass().getResource(path);Filefile=newFile(resourceUrl.toURI());OutputStreamoutput

java - ClassLoader getResourceAsStream 返回 null

我的项目目录结构(在Eclipse中):MyProject/src/-->"sourcedirectory"onEclipse'sclasspath/buildpathcom.me.myappDrivermyconfig.txt在Driver中,我有以下代码:publicclassDriver{publicstaticvoidmain(String[]args){InputStreamis=ClassLoader.getSystemClassLoader.getResourceAsStream("myconfig.txt");if(is==null)System.out.println

java - Junit + getResourceAsStream 返回 Null

不确定这怎么可能。我重新阅读了getResourceAsStream,它总是返回null。InputStreamsource=this.getClass().getResourceAsStream("test.xml");Finder中的test.java旁边(使用OSX和Eclipse)是test.xml我可以在TextWrangler中打开它,并将其视为现有数据。这是一个Junit测试,如果它有什么不同的话。我去查看了我们系统上现有的Junit测试,并以与工作示例完全相同的方式使用它(如文件所在的位置和代码本身)。我认为getClass()无法返回正确的路径会有什么细微差别?

java - getResourceAsStream() 与 FileInputStream

我试图在web应用程序中加载文件,当我使用FileInputStream时遇到FileNotFound异常。但是,使用相同的路径,当我执行getResourceAsStream()时,我能够加载文件。这两种方法有什么区别,为什么一种有效而另一种无效? 最佳答案 java.io.File和consorts作用于本地磁盘文件系统。问题的根本原因是java.io中的relative路径依赖于当前工作目录。IE。JVM(在您的情况下:网络服务器的)启动的目录。例如,这可能是C:\Tomcat\bin或完全不同的东西,但因此notC:\Tom

java - 从 Java 包加载属性文件

我需要读取一个隐藏在com.al.common.email.templates中的包结构中的属性文件。我已经尝试了所有方法,但我无法弄清楚。最后,我的代码将在servlet容器中运行,但我不想依赖容器做任何事情。我编写了JUnit测试用例,它需要同时在这两种情况下工作。 最佳答案 从包com.al.common.email.templates中的类加载属性时,您可以使用Propertiesprop=newProperties();InputStreamin=getClass().getResourceAsStream("foo.pr

java - 从 Java 包加载属性文件

我需要读取一个隐藏在com.al.common.email.templates中的包结构中的属性文件。我已经尝试了所有方法,但我无法弄清楚。最后,我的代码将在servlet容器中运行,但我不想依赖容器做任何事情。我编写了JUnit测试用例,它需要同时在这两种情况下工作。 最佳答案 从包com.al.common.email.templates中的类加载属性时,您可以使用Propertiesprop=newProperties();InputStreamin=getClass().getResourceAsStream("foo.pr

java - getResourceAsStream 返回 null

我正在从我的Java项目的已编译JAR的包中加载一个文本文件。相关目录结构如下:/src/initialization/Lifepaths.txt我的代码通过调用Class::getResourceAsStream加载文件返回InputStream.publicclassLifepaths{publicstaticvoidexecute(){System.out.println(Lifepaths.class.getClass().getResourceAsStream("/initialization/Lifepaths.txt"));}privateLifepaths(){}//T