我尝试使用Spring资源加载程序读取文本文件,如下所示:
Resource resource = resourceLoader.getResource("classpath:\\static\\Sample.txt");
当在eclipse中运行应用程序时,它工作得很好,但是当我将应用程序打包,然后使用Java–jar运行它时,我得到了file not found异常:
java.io.FileNotFoundException: class path resource [static/Sample.txt] cannot be resolved to absolute file path because it does not reside in the
file system: jar:file:/C:/workspace-test/XXX/target/XXX-0.0.1-SNAPSHOT.jar!/BOOT-INF/classes!/static/Sample.txt
我解压了示例所在的Jar文件:XXX-0.0.1-SNAPSHOT\BOOT-INF\classes\static\Sample.txt
有人能帮助我吗?
提前感谢!
我也有同样的问题,正如@Gipple Lake解释的那样,使用Spring boot,你需要将文件作为inputStream加载。因此,下面我将添加我的代码作为示例,在那里我要读取import.xml文件
public void init() {
Resource resource = new ClassPathResource("imports/imports.xml");
try {
InputStream dbAsStream = resource.getInputStream();
try {
document = readXml(dbAsStream);
} catch (SAXException e) {
trace.error(e.getMessage(), e);
e.printStackTrace();
} catch (ParserConfigurationException e) {
trace.error(e.getMessage(), e);
e.printStackTrace();
}
} catch (IOException e) {
trace.error(e.getMessage(), e);
e.printStackTrace();
}
initListeImports();
initNewImports();
}
public static Document readXml(InputStream is) throws SAXException, IOException,
ParserConfigurationException {
DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
dbf.setValidating(false);
dbf.setIgnoringComments(false);
dbf.setIgnoringElementContentWhitespace(true);
dbf.setNamespaceAware(true);
DocumentBuilder db = null;
db = dbf.newDocumentBuilder();
return db.parse(is);
}
我添加了“imports.xml
”下面src/main/ressource/import
请尝试 resourceLoader.getResource(“classpath:static/Sample.txt”);
使用< code>java -jar XXXX.jar运行时使用此代码
------更新------
检查代码后,问题是您试图通过<code>FileInputStream
但实际上你得到了组织.Spring框架.core.io.资源
所以意味着你得到了输入流,所以你可以像新的缓冲阅读器(新的输入流阅读器(资源.getInputStream()).readLine();
我已经检查了你的代码。如果您想从Spring Boot JAR中的类路径加载文件,那么您必须使用< code > resource . getinputstream()而不是< code>resource.getFile()。如果您尝试使用< code>resource.getFile()您将会收到一个错误,因为Spring试图访问一个文件系统路径,但是它不能访问您的JAR中的路径。
详情如下:
https://smarterco.de/java-load-file-classpath-spring-boot/
问题内容: 我正在尝试在Android Studio的res \ raw文件中保留一个.txt文件,并读取/解析该文件。我在“ res”目录(未创建)中创建的名为“ raw”的文件夹中有一个文件“ my_file.txt”。 我认为我的主要问题是:创建File对象(与Scanner对象一起使用)时,应该为文本文件传递什么路径? 这是我的代码: 问题答案: 认为您正在寻找符合以下条件的东西 其中ct
传统方式的导入外部JS和CSS文件的方法是直接在模板文件使用: <script type='text/javascript' src='/static/js/common.js'> <link rel="stylesheet" type="text/css" href="/static/css/style.css" /> 系统提供了专门的标签来简化上面的导入: {load href="/stati
我有一个文本文件(.txt),我想成为以后可以扫描的资源。 在pubspec.yaml,我已经确保: 存在。该文件位于我创建的文件夹中,与和处于同一级别 我试图从自定义类读取文件,而不是小部件。 根据文档,我将使用此导入: 然后开始这样读: 要获得实际数据,请执行以下操作: 但是,当我使用
我在maven项目的src/main/resource文件夹中下载了.sh文件,我正在通过下面的代码阅读它 如果我使用jar EX作为应用程序运行:- java-jar runscript.jar SCHEMA_NAME /users/ideaprojects/runscript/target/file:/users/ideaprojects/runscript/target/runscripts
问题内容: 是否有任何实用程序可帮助将资源中的文本文件读取为字符串。我想这是一个很普遍的要求,但是在谷歌搜索之后我找不到任何实用程序。 问题答案: 是的,番石榴在课堂上提供了这一点。例如:
我有一个名为的项目,它有以下结构: 所以这两个文件的路径是: 我想读测试文件。TestDataProvider中的json。JAVA 我曾经用过 我看到从URL res=getClass(). getClassLoader(). getResources("testfile.json")返回; 有人能帮我吗?