java 有没有内存文件的概念?

seeku 2011-01-06 11:43:33
VC中有内存文件的概念,可以创建内存文件,除了不会保存到硬盘,其他操作都跟一般的文件对象差不多?
不知道java有没有这类的类?

我现在要做一个上传功能,上传的文件不要保存在服务器硬盘中,希望保存在byte[]中处理完毕就销毁。
我使用apache的上传文件工具包,很方便保存文件到硬盘中,但是我希望保存在硬盘中的要求就达不到。

谢谢支持,我写程序9年了,还觉得自己是个新手
...全文
378 20 打赏 收藏 转发到动态 举报
写回复
用AI写文章
20 条回复
切换为时间正序
请发表友善的回复…
发表回复
dxqrr 2012-12-06
  • 打赏
  • 举报
回复
1,LS说的临时文件什么的,也会在银盘上创建一个临时文件,只不过当数据全部传输完毕后会自动删除 2,JAVA中有ByteArrayOutputStream,和ByteArrayInputStream,你可以在网上搜下应该可以满足你的要求
rorom 2012-12-05
  • 打赏
  • 举报
回复
用临时文件,用完删除,比较靠谱
「已注销」 2012-12-05
  • 打赏
  • 举报
回复
这些都是什么回答呀,LZ是问有没有这个概念,我刚一年,更是菜鸟了,我也想问这样的问题,C的同事使用内存文件这种方式,不知道我们Java行不行,数据不多,内存可以自己要求么,产品我们自己出。 我想问的就是Java内存文件有这个概念吗,我是菜鸟
shiyonghu 2012-12-05
  • 打赏
  • 举报
回复
这个没看懂呀
muqingren1978 2012-12-05
  • 打赏
  • 举报
回复
引用 3 楼 ChDw 的回复:
apache的common-upload本身就可以设置在内存中持有数组的大小, DiskFileItemFactory factory = new DiskFileItemFactory(); factory.setSizeThreshold(Integer.MAX_VALUE); ServletFileUpload upload = new ServletFi……
Java_Super_Man 2012-12-05
  • 打赏
  • 举报
回复
有的,只不过java类库封装起来了。buffer的大小可以设置的,根据需求而定。如果特别大用啥语言你也得存到硬盘上。
beiouwolf 2012-12-05
  • 打赏
  • 举报
回复
没用过VC,不知道VC的临时文件是怎么处理的 JAVA的话,可以读取直接从InputStream中读取上传文件的byte数组 这个byte数组就是你文件的内容了,可以直接进行处理,处理完成以后数组置null就可以了
huntor 2012-12-05
  • 打赏
  • 举报
回复
ByteArrayOutputStream
hulinandshaoliyan 2011-01-06
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 chdw 的回复:]
apache的common-upload本身就可以设置在内存中持有数组的大小,

DiskFileItemFactory factory = new DiskFileItemFactory();
factory.setSizeThreshold(Integer.MAX_VALUE);
ServletFileUpload upload = new ServletFileUpload(fact……
[/Quote]这个
xtawgipl 2011-01-06
  • 打赏
  • 举报
回复
DataInpuStream,DataOutputStream
yueguangkai001 2011-01-06
  • 打赏
  • 举报
回复
全部放内存,这种做法感觉会死服务器
ChDw 2011-01-06
  • 打赏
  • 举报
回复
一个系统在运行过程中写临时文件是一个正常的现象,用户不应该对此有意见。


你在用完DiskFileItemFactory 之后,调用所有的的fileItem.delete()方法就会删除临时文件了
ChDw 2011-01-06
  • 打赏
  • 举报
回复
apache的common-upload本身就可以设置在内存中持有数组的大小,

DiskFileItemFactory factory = new DiskFileItemFactory();
factory.setSizeThreshold(Integer.MAX_VALUE);
ServletFileUpload upload = new ServletFileUpload(factory);


这样就所有东西都在内容中了,不过这个其实是一个非常烂的主意,万一用户上传一个1G的文件,你服务器直接死掉!
seeku 2011-01-06
  • 打赏
  • 举报
回复
现在就不想保存在硬盘,主要是安全起见。用户也觉得放心。
昵称很不好取 2011-01-06
  • 打赏
  • 举报
回复
临时文件?参考如下方法
createTempFile (String prefix, String suffix)
void deleteOnExit ();
jsut_yi 2011-01-06
  • 打赏
  • 举报
回复
小弟认为放内存中不是办法,你可以处理完数据后,用程序删掉硬盘上的文件。这样达到lz需求。
大蚂虾 2011-01-06
  • 打赏
  • 举报
回复
你在业务处理完后删除文件不就好了。。放内存中就安全了?就取不到了?就放心了??

这客户的想法有问题,既然不放心你们,干嘛把项目交给你们做。。。

把上传文件放内存中局限性太大也太危险了吧。。你能保证你的内存大小么??
想喝咖啡的貓 2011-01-06
  • 打赏
  • 举报
回复
用临时文件;再有对象序列化后,也可以写到文件里.
diggywang 2011-01-06
  • 打赏
  • 举报
回复
直接通过Outputstream写byte[],inputstream读byte[]不就行了么
keke8247 2011-01-06
  • 打赏
  • 举报
回复
创建临时文件。用过以后销毁可以么???

62,614

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧