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

标签 java file vaadin java-io

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

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/

相关文章:

java Spark框架无法设置或读取cookie

java - jsp 中从 struts1 到 struts2 的一些语法更改 --> 逻辑 :messagesPresent

jQuery 表单插件 + Ajax 文件上传 + Rails

linux - 实现基本文件系统

java - 序列化 BoundStatement cassandra

java - GWT PlaceHistoryMapper token 如何转换为实际 URL?

Java 从 getUsername() 获取 NULL 值; (不同的类文件)

java - Maven 中的 Vaadin 应用程序获取小部件错误(使用 tomcat)

java - Vaadin 随机播放 ListSelect

java - 从 Vaadin 7 应用程序中新打开的窗口获取图像文件 (ThemeResource) 失败