java io方面的 对于一个5G的文件 请问我该如何删除文件中某一块内容 如题 我想实现删除一个大文件中任意一块内容 比如从文件的第99MB处删除往后1M的数据 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 JAVA中好像没有直接的办法,可能需要你用一个99M的缓冲区去处理了,等这99M的缓冲区读满了后表明后面的1M是不要的了,不写出来就好了。但是IO的效率的话确实不高 我举的例子看来是不太好 但是如果我要删除这个5g文件中末尾1M的数据呢 难道要把5G的文件都慢慢读入内存么 这样做不仅速度慢得厉害而且占用内存也太多了 你可以了解一下,java随机读取---RandomAccessFile类 RandomAccessFile哪个方法可以做到,如何做?我其实也经常用这个类 没见哪个方法可以直接或者间接实现的 RandomAccessFile.skipBytes(int n)看看JDK API LZ几位...都在说什么啊...对于文件中间进行修改操作,必然牵涉到流复制一般操作都是在需要更改的地方做标记,以你的删除动作来说在99M的地方记下文件指针pointer,接着再往后便宜1M的位置,记录第二个标记指针position然后将这个position地址指针之后的数据写到一个临时文件中重新定位原文件到指针位置到pointer,将临时文件中的内容重新回来,最后将文件做一个截断处理 用RandomAccessFile类中的seek(偏移量)函数移到你要开始读取的地方,然后开始读取的时候做个标记,当读到1M的时候就不读了,或者每次获取当前的指针位置,在进行判断。 字符串分割 gridlayout 布局 help!大虾帮忙加个timer 新人提问,关于java的double的数据相乘的问题 请问Tomcat中实现url过滤是哪个类? 多线程有几种表示方法,都是什么?有什么区别?同步有几种实现方法,都是什么? *** 高分, 关于数据库中文乱码的问题, 请高手指教, 一定给分。 **** 一个简单的Java程序! 请大家帮帮我!谢谢! 想学JAVA,但不知从何入手 我什么也不知道!HELP ME! java的锁 JTable问题
看看JDK API
对于文件中间进行修改操作,必然牵涉到流复制
一般操作都是在需要更改的地方做标记,以你的删除动作来说
在99M的地方记下文件指针pointer,接着再往后便宜1M的位置,记录第二个标记指针position
然后将这个position地址指针之后的数据写到一个临时文件中
重新定位原文件到指针位置到pointer,将临时文件中的内容重新回来,最后将文件做一个截断处理