关于这个主题已经有很多类似的问题和教程,但我还是没有找到我想做的。
我想做一个API
,虽然我可以上传zip文件,该zip包含xml文件,我正在读取这些文件并发送内容作为响应。
这里唯一的问题是,目前我将文件存储在我的项目目录中,但我不希望我想直接读取文件,而不存储在一个目录中。
因此,基本上用户将击中我的API,上传文件,作为回应,他将获得在那个压缩文件中存在的数据。
@RequestMapping(value ="/upload", method = RequestMethod.POST, consumes = MediaType.MULTIPART_FORM_DATA_VALUE)
public ResponseEntity<Object> uploadFile(@RequestParam("file")MultipartFile file) throws IOException {
System.out.println(file.getOriginalFilename());
File converFile = new File("src/main/"+file.getOriginalFilename());
converFile.createNewFile();
FileOutputStream fout = new FileOutputStream(converFile);
fout.write(file.getBytes());
//unzipping file and reading data;
String zipFileName = "src/main/"+file.getOriginalFilename();
List<String> str = new ArrayList<String>();
byte[] buffer = new byte[1024];
ZipInputStream zis = new ZipInputStream(new FileInputStream(zipFileName));
ZipEntry zipEntry;
int read;
while ((zipEntry = zis.getNextEntry())!= null) {
while ((read = zis.read(buffer, 0, 1024)) >= 0) {
str.add(new String(buffer,0,read));
}
}
while (zipEntry != null){
zipEntry = zis.getNextEntry();
}
zis.closeEntry();
zis.close();
System.out.println("Unzip complete");
System.out.println("--------------------------------");
System.out.println("List"+ str);
fout.close();
return new ResponseEntity<>(str, HttpStatus.OK);
}
您可以使用ByteArrayInputStream
代替FileInputStream
,如下所示:
java prettyprint-override">ZipInputStream zis = new ZipInputStream(new ByteArrayInputStream(file.getBytes()));
下面的代码在内存中创建了一个文件。 我想把那个pdf文件保存在磁盘上以便查看。我将如何在python中实现它?
我正在Windows服务器上使用C#处理存储在IIS服务器上的web应用程序。 null
我有一个方法,在. txt或. docx文件的代码的不同部分接收来自的。我想创建一个新的对象,从以后读取内容的字节,而不保存该文件到磁盘。这有可能吗?或者有更好的方法从文件字节中获取内容?
这里我有一个判决, 我想做的是将字典保存到一个json文件中。 我现在做的是将dict1保存到一个真正的json文件中,并使用flask send_from_directory返回该文件。如何避免将dict1保存到磁盘?
问题内容: 我从SUN网站(http://java.sun.com/developer/technicalArticles/Programming/compression/)找到了示例,但是它返回BufferedOutputStream。但是我想将ZipEntry文件作为InputStream,然后处理下一个文件。那可能吗?我的程序无法访问硬盘,因此它甚至无法临时保存文件。 问题答案: 好吧,只需
我目前正在做一个小程序,从磁盘读取png文件,做一些修改,并保存回来。除了一个小问题外,一切都运行得很顺利,在我将文件保存回磁盘后,它的大小总是增加,例如,27.1MB的文件会变成33.3MB。 如何在不改变图像大小的情况下读取和保存图像?
问题内容: 我需要在zip文件中读取单个文件“ test.txt”的内容。整个zip文件是一个非常大的文件(2gb),其中包含很多文件(10,000,000),因此,提取整个文件对我而言不是可行的解决方案。如何读取单个文件? 问题答案: 尝试使用包装器: 您也可以使用:
我有一个zip文件(在一个jar文件中),我想读取init。我知道我可以使用getResourceAsStream(…)轻松读取txt文件,避免“URI不分层”错误。但现在确定我该如何为zip文件做到这一点。 下面是我的代码,但当我将代码导出到runnable jar并运行它时,它会抛出“URI非层次错误”。