- Java 双重比较
- java - 比较器与 Apache BeanComparator
- Objective-C 完成 block 导致额外的方法调用?
- database - RESTful URI 是否应该公开数据库主键?
我有一个奇怪的问题:
在 src/main/resources 我有一个“template.xlsx”文件。
如果我这样做:
InputStream is = new ClassPathResource("template.xlsx").getInputStream();
或者这个:
InputStream is = ClassLoader.getSystemResourceAsStream("template.xlsx");
或者这个:
InputStream is = getClass().getResourceAsStream("/template.xlsx");
当我尝试创建工作簿时:
Workbook wb = new XSSFWorkbook(is);
我收到这个错误:
java.util.zip.ZipException: invalid block type
但是,当我得到这样的文件时:
InputStream is = new FileInputStream("C:/.../src/main/resources/template.xlsx");
有效!
怎么了?我无法对文件的完整路径进行硬编码。
有人可以帮我解决这个问题吗?
谢谢
最佳答案
我遇到了同样的问题,你可能遇到了 maven 过滤的问题。
此代码从源加载文件,未过滤
InputStream is = new FileInputStream("C:/.../src/main/resources/template.xlsx");
这段代码在maven过滤内容后从目标目录加载文件
InputStream is = getClass().getResourceAsStream("/template.xlsx");
您不应像本页底部所述那样过滤 excel 之类的二进制文件并使用两个互斥的资源集 maven resources plugin
关于java - FileInputStream vs ClassPathResource vs getResourceAsStream 和文件完整性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9840631/
这可能有点傻,但我想知道后台操作的区别。 InputStream is = new FileInputStream(filepath); FileInputStream is = new FileIn
优点: 所以,我有这个二进制数据文件(大小 - 恰好 640631 字节),我正试图让 Java 读取它。 我有两个可互换的类实现为读取该数据的层。其中之一使用 RandomAccessFile,效果
问题是当我在 Android Studio 中运行我的程序时,FileInputStream 找不到 c:\poi-test.xls 文件。 我在 Android Studio 中运行的简单测试 ja
Scanner scanner= new Scanner(new File("target.txt")); 和 FileInputStream d = new FileInputStream("tar
我有 @Component public class CodesConverterService { private final FileInputStreamFactory fileInput
这个问题不太可能对任何 future 的访客有帮助;它只与一个较小的地理区域、一个特定的时间点或一个非常狭窄的情况相关,通常不适用于全世界的互联网受众。如需帮助使此问题更广泛适用,visit the
我正在创建一个程序,用于根据 iTunes 播放列表文件从用户的计算机播放音乐。当我尝试根据播放列表文本文件中提供的位置打开音频文件时,它说存在错误。 filename = "Macintosh HD
我需要读取的文件如下所示: 30 15 6 3 12 20 3 4 (没有要点) inputStream 没有读取 30 和 15,但它正在读取所有其他的。 如何让 inputStream 读取第一行
我收到“找不到文件!”无论我做什么。 FileInputStream fin; try { fin = new FileInputStream("foo.txt");
public static void main(String[] args) { try { File f = new File("file.txt");
我正在加载另一个类通过 FileOutputstream 方法保存的文件。无论如何,我想在另一个类中加载该文件,但它要么给我语法错误,要么使我的应用程序崩溃。 我能找到的唯一教程是在同一个类中保存和加
我在 res/raw 中有一个名为“pack.dat”的原始文件。 我可以使用以下代码打开一个InputStream: InputStream fis = null; try {
已关闭。此问题不符合Stack Overflow guidelines 。目前不接受答案。 要求提供代码的问题必须表现出对所解决问题的最低限度的了解。包括尝试的解决方案、为什么它们不起作用以及预期结果
我已经对我的代码进行了 klocwork 代码分析。我收到以下错误我终于关闭了输入流即使那样我也收到错误“fileInputStream”在退出时未关闭。 下面是一段代码 LOGGER.log
我想逐个标记地读取 file.txt 文件中的单词,并向每个标记添加词性标记,然后将其写入 file2.text 文件。 file.txt 内容已标记化。这是我的代码。 public class Po
“Dbconnection.java”“db.properties”文件找不到该文件。我向您展示如何获取以下文件。 我的下一个项目目录。 源代码 数据库 DbConnection.java db.pr
如果我将文本文件放在同一项目文件夹中,程序可以毫无问题地读取它。但是我怎样才能让它从我的计算机中的某个地方读取文件(例如:在桌面中) FileInputStream fstream = new Fil
很难说出这里问的是什么。这个问题是含糊的、模糊的、不完整的、过于宽泛的或修辞性的,无法以目前的形式得到合理的回答。如需帮助澄清此问题以便重新打开它,visit the help center 。 已关
这是我将位图转换为字节数组的代码。 ByteArrayOutputStream outputStream = new ByteArrayOutputStream(); image.compress
我是 Java 编码的新手,遇到了很多困难。我假设使用从文件中读取的 bufferedreader 编写一个程序,我已经创建了名为“scores.txt”的文件。所以我有一个名为 processFil
我是一名优秀的程序员,十分优秀!