gpt4 book ai didi

java - 如何将文件保存在内存中并读取文件输出流?

转载 作者:行者123 更新时间:2023-12-01 07:51:09 24 4
gpt4 key购买 nike

当我保存文件时,我使用:

File file = new File(filename);

但是,由于我不再有写入文件夹的权限,我宁愿将其保存到内存中,然后将文件读取到 FileOutputStream。

我读过我可以用这种方法将文件保存到内存中:

new ByteArrayOutputStream(); 

整个代码会是什么样子?上传完成后我不知道如何正确编写它。

编辑:我正在使用 Vaadins 上传插件:

public File file;

public OutputStream receiveUpload(String filename,
String mimeType) {

// Create upload stream
FileOutputStream fos = null; // Stream to write to
file = null;

if(StringUtils.containsIgnoreCase(filename, ".csv")){
try {

file = new File(filename);
fos = new FileOutputStream(file);
} catch (final java.io.FileNotFoundException e) {

new Notification("Error", e.getMessage(), Notification.Type.WARNING_MESSAGE)
.show(Page.getCurrent());
return null;
}
} else {

new Notification("Document is not .csv file", Notification.Type.WARNING_MESSAGE)
.show(Page.getCurrent());
return null;
}
return fos; // Return the output stream to write to
}

最佳答案

public OutputStream receiveUpload(String filename,
String mimeType) {

ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream();

return byteArrayOutputStream;
}

您可以使用以下方式获取写入流中的内容:

byte[] dataWrittenInTheOutputStream = byteArrayOutputStream.toByteArray();

或者您可以将内容写入另一个OutputStream:

byteArrayOutputStream.writeTo(System.out);

或者:

file = new File(filename);    
fos = new FileOutputStream(file);
byteArrayOutputStream.writeTo(fos);

关于java - 如何将文件保存在内存中并读取文件输出流?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37385908/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com