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

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

  1. public void doPost(HttpServletRequest request, HttpServletResponse response)
  2. throws ServletException, IOException {
  3. request.setCharacterEncoding("gbk");
  4. PrintWriter out = response.getWriter();
  5. // 使用SaeUserInfo拿到改请求可写的路径
  6. String realPath = SaeUserInfo.getSaeTmpPath() + "/";
  7. try {
  8. // 使用common-upload上传文件至这个路径中
  9. boolean isMultipart = ServletFileUpload.isMultipartContent(request);
  10. if (!isMultipart)
  11. return;
  12. DiskFileItemFactory factory = new DiskFileItemFactory();
  13. ServletFileUpload upload = new ServletFileUpload(factory);
  14. upload.setFileSizeMax(1024 * 1024);
  15. List<FileItem> items = null;
  16. items = upload.parseRequest(request);
  17. for (FileItem item : items) {
  18. if (!item.isFormField()) {
  19. File fullFile = new File(item.getName());
  20. File uploadFile = new File(realPath, fullFile.getName());
  21. item.write(uploadFile);
  22. // 上传完毕后 使用SaeStorage往storage里面写
  23. SaeStorage ss = new SaeStorage();
  24. // 使用upload方法上传到域为image下
  25. ss.upload("image", realPath + fullFile.getName(),
  26. fullFile.getName());
  27.  
  28. out.print("upload file:" + realPath + fullFile.getName()
  29. + "</br>");
  30. }
  31. }
  32. out.print("upload end...");
  33. } catch (Exception e) {
  34. out.print("ERROR:" + e.getMessage() + "</br>");
  35. } finally {
  36. out.flush();
  37. out.close();
  38. }
  39. }

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. Spring依赖注入:注解注入总结

    更多11   spring   依赖注入   注解   java 注解注入顾名思义就是通过注解来实现注入,Spring和注入相关的常见注解有Autowired.Resource.Qualifier.S ...

  2. MAC Java 开发环境配置

    JDK Oracle官网 -> Download -> Java for Developers -> Java SE Downloads -> Java Platform (J ...

  3. php获取当前方法名和类名

    php提供的一些系统常量可以完成这些 php获取当前方法名(函数名) __FUNCTION__ php获取当前类名 __CLASS__ 或者 get_class($this); php获取本类所有的方 ...

  4. Android SDK安装教程

    1.下载安装JDK(java 开发套件),天空软件站下载http://www.skycn.com/soft/3116.html(或 到java官网下载),下载后双击安装即可. 2.下载android ...

  5. derby的三大缺陷

    derby的三大缺陷 derby数据库的嵌入式特性让人很流口水.但是,我刚打算将其用进我的项目中,却发现它没有好的分页查询方式,每次都返回所有符合条件的记录.oracle有rownum,mysql有l ...

  6. C++中map的概念,与简单操作

     来源:http://blog.csdn.net/wallwind/article/details/6876892 C++map学习   map<Key, Data, Compare, Allo ...

  7. dedecms升级后报错

    DedeCMS Error: (PHP 5.3 and above) Please set 'request_order' ini value to include C,G and P (recomm ...

  8. DiscuzX程序升级教程_不知道关闭论坛的看过来

    DiscuzX程序升级教程,不知道关闭论坛的朋友看过来,适用于  1.0, 1.5 2.0 , 2.5Beta, 2.5RC,2.5, 3.0 1)关闭论坛:后台- 全局- 站点信息- 是否关闭 :是 ...

  9. 昂贵的聘礼(dijkstra)

    昂贵的聘礼 Time Limit: 1000MS   Memory Limit: 10000K Total Submissions: 38549   Accepted: 11158 Descripti ...

  10. Unity3D研究之Prefab里面的Prefab关联问题

    Unity研究院之Prefab和GameObject的正向和逆向查找引用 我发现很多美工兄弟都爱问程序Unity3d为什么总丢材质? 我不排除U3d有BUG的情况下会丢材质?但是其实很多时候是人为操作 ...