VC中有内存文件的概念,可以创建内存文件,除了不会保存到硬盘,其他操作都跟一般的文件对象差不多?
不知道java有没有这类的类?我现在要做一个上传功能,上传的文件不要保存在服务器硬盘中,希望保存在byte[]中处理完毕就销毁。
我使用apache的上传文件工具包,很方便保存文件到硬盘中,但是我希望保存在硬盘中的要求就达不到。谢谢支持,我写程序9年了,还觉得自己是个新手

解决方案 »

  1.   

    临时文件?参考如下方法
    createTempFile (String prefix, String suffix)
    void deleteOnExit ();
      

  2.   

    apache的common-upload本身就可以设置在内存中持有数组的大小,DiskFileItemFactory factory = new DiskFileItemFactory();
    factory.setSizeThreshold(Integer.MAX_VALUE);
    ServletFileUpload upload = new ServletFileUpload(factory);
    这样就所有东西都在内容中了,不过这个其实是一个非常烂的主意,万一用户上传一个1G的文件,你服务器直接死掉!
      

  3.   

    一个系统在运行过程中写临时文件是一个正常的现象,用户不应该对此有意见。
    你在用完DiskFileItemFactory 之后,调用所有的的fileItem.delete()方法就会删除临时文件了
      

  4.   

    直接通过Outputstream写byte[],inputstream读byte[]不就行了么
      

  5.   

    这些都是什么回答呀,LZ是问有没有这个概念,我刚一年,更是菜鸟了,我也想问这样的问题,C的同事使用内存文件这种方式,不知道我们Java行不行,数据不多,内存可以自己要求么,产品我们自己出。
        我想问的就是Java内存文件有这个概念吗,我是菜鸟
      

  6.   

    没用过VC,不知道VC的临时文件是怎么处理的
    JAVA的话,可以读取直接从InputStream中读取上传文件的byte数组
    这个byte数组就是你文件的内容了,可以直接进行处理,处理完成以后数组置null就可以了
      

  7.   

    有的,只不过java类库封装起来了。buffer的大小可以设置的,根据需求而定。如果特别大用啥语言你也得存到硬盘上。
      

  8.   

    1,LS说的临时文件什么的,也会在银盘上创建一个临时文件,只不过当数据全部传输完毕后会自动删除
    2,JAVA中有ByteArrayOutputStream,和ByteArrayInputStream,你可以在网上搜下应该可以满足你的要求