近期不少java用户都在提sae读写本地文件的问题,在这里结合TmpFS和Storage服务说说java应用应该如何读写文件
TmpFS是一个供应用临时读写的路径,但请求过后将被销毁。出于安全考虑,sae限制了应用对本地IO操作,但本地操作肯定是存在的,所以sae提供了TmpFS来应对。如果需要将文件持久化怎么办呢?当然是使用storage。

下面给出一个例子结合storage和TmpFS来写文件
首先使用common-upload将文件上传至TmpFS下,之后再使用SaeStorage对象将文件存储至storage中。
这里只是用于演示storage结合TmpFS使用,如果单纯使用storage服务大可不必这么麻烦,直接调用SaeStorage的write方法即可。

public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
request.setCharacterEncoding("gbk");
PrintWriter out = response.getWriter();
// 使用SaeUserInfo拿到改请求可写的路径
String realPath = SaeUserInfo.getSaeTmpPath() + "/";
try {
// 使用common-upload上传文件至这个路径中
boolean isMultipart = ServletFileUpload.isMultipartContent(request);
if (!isMultipart)
return;
DiskFileItemFactory factory = new DiskFileItemFactory();
ServletFileUpload upload = new ServletFileUpload(factory);
upload.setFileSizeMax(1024 * 1024);
List<FileItem> items = null;
items = upload.parseRequest(request);
for (FileItem item : items) {
if (!item.isFormField()) {
File fullFile = new File(item.getName());
File uploadFile = new File(realPath, fullFile.getName());
item.write(uploadFile);
// 上传完毕后 使用SaeStorage往storage里面写
SaeStorage ss = new SaeStorage();
// 使用upload方法上传到域为image下
ss.upload("image", realPath + fullFile.getName(),
fullFile.getName()); out.print("upload file:" + realPath + fullFile.getName()
+ "</br>");
}
}
out.print("upload end...");
} catch (Exception e) {
out.print("ERROR:" + e.getMessage() + "</br>");
} finally {
out.flush();
out.close();
}
}

SAE java应用读写文件(TmpFS和Storage)的更多相关文章

  1. SAE java应用读写文件(TmpFS和Storage)-----绝世好代码

    近期不少java用户都在提sae读写本地文件的问题,在这里结合TmpFS和Storage服务说说java应用应该如何读写文件TmpFS是一个供应用临时读写的路径,但请求过后将被销毁.出于安全考虑,sa ...

  2. java StringBuffer读写文件

    java StringBuffer读写文件 StringBuffer的优势 较String:String每更新一次就会new一个新的对象出来,更新次数上去之后,内存开销太大.而StringBuffer ...

  3. java io读写文件

    java io读写文件相关阅读:http://www.cnblogs.com/wing011203/archive/2013/05/03/3056535.html public class DemoI ...

  4. JAVA多线程读写文件范例

    在写之前先声明,本文是基于之前在博客园网站上检索到的一份JAVA多线程读写文件的示例,我在写自己的程序时是在那位作者写的基础上做了改良,但已不记得原文的地址.如果有知情者,烦请帖出地址,我在此文上加入 ...

  5. java(IO)读写文件乱码转换UTF-8问题

    java(IO)读写文件乱码转换UTF-8问题 读取文件 String Content = ""; // 文件很长的话建议使用StringBuffer try { FileInpu ...

  6. Java基础--读写文件

    Java读写文件需要注意异常的处理,下面是一个例子 写文件 public class WriteFile { public static void write(String file, String ...

  7. 顺序、随机IO和Java多种读写文件性能对比

    概述 对于磁盘的读写分为两种模式,顺序IO和随机IO. 随机IO存在一个寻址的过程,所以效率比较低.而顺序IO,相当于有一个物理索引,在读取的时候不需要寻找地址,效率很高. 基本流程 总体结构 我们编 ...

  8. JAVA字节流(读写文件)

    InputStream此抽象类是表示字节输入流的所有类的超类.需要定义 InputStream 的子类的应用程序必须始终提供返回下一个输入字节的方法. int available()返回此输入流方法的 ...

  9. C# & JAVA:读写文件

    using System; using System.IO; using System.Text; namespace ConsoleApplication4 { class Program { pu ...

随机推荐

  1. OnClickListener接口

    package com.example.wang.testapp2; import android.support.v7.app.AppCompatActivity; import android.o ...

  2. 如何用正确的姿势编写jQuery插件

    在园子里有很多关于jQuery插件的文章,尤其 以下2篇文章: 不定义JQuery插件,不要说会JQuery jQuery插件开发精品教程,让你的jQuery提升一个台阶 这2位大神基础讲的很清楚,在 ...

  3. lr11录制时报“Request Connection: Remote Server @ 0.0.0.0:1080 (Service=?) NOT PROXIED! )”解决方法

    在录制脚本的时候出现如下现象: 解决方法: LoadRunner录制脚本时出现:Unable to connect to remote server),有事件没有脚本的问题   1.首先要查看IE浏览 ...

  4. QString::arg()//用字符串变量参数依次替代字符串中最小数值

    QString i = "iTest";           // current file's number QString total = "totalTest&qu ...

  5. Linux 的文件权限与目录配置

    用户和用户组 文件所有者 (owner) 用户组概念 (group) 其他人概念 (others) Linux文件权限概念 1. Linux文件属性 要了解Linux文件属性,那么有个重要的命令必须提 ...

  6. 深度学习基础系列(七)| Batch Normalization

    Batch Normalization(批量标准化,简称BN)是近些年来深度学习优化中一个重要的手段.BN能带来如下优点: 加速训练过程: 可以使用较大的学习率: 允许在深层网络中使用sigmoid这 ...

  7. 用于兼容浏览器的js写法

    用于引用的源文件代码: var Common = { getEvent: function() {//ie/ff if (document.all) { return window.event; } ...

  8. 第一个ASP.NET MVC应用程序

    首先打开vs2015 文件->新建->项目 选择模版选empty,下面[为下项添加文件夹和核心引用]勾选mvc 点击确定就好

  9. Codeforces 1085G(1086E) Beautiful Matrix $dp$+树状数组

    题意 定义一个\(n*n\)的矩阵是\(beautiful\)的,需要满足以下三个条件: 1.每一行是一个排列. 2.上下相邻的两个元素的值不同. 再定义两个矩阵的字典序大的矩阵大(从左往右从上到下一 ...

  10. 网络抓包及Http Https通信协议分析

    Wireshark基本介绍和学习TCP三次握手 之前写过一篇博客:用 Fiddler 来调试HTTP,HTTPS. 这篇文章介绍另一个好用的抓包工具wireshark, 用来获取网络数据封包,包括ht ...