[转帖] 工作随手记:java分割文件_Android, Python及开发编程讨论区_Weblogic技术|Tuxedo技术|中间件技术|Oracle论坛|JAVA论坛|Linux/Unix技术|hadoop论坛_联动北方技术论坛  
网站首页 | 关于我们 | 服务中心 | 经验交流 | 公司荣誉 | 成功案例 | 合作伙伴 | 联系我们 |
联动北方-国内领先的云技术服务提供商
»  游客             当前位置:  论坛首页 »  自由讨论区 »  Android, Python及开发编程讨论区 »
总帖数
1
每页帖数
101/1页1
返回列表
0
发起投票  发起投票 发新帖子
查看: 3586 | 回复: 0   主题: [转帖] 工作随手记:java分割文件        下一篇 
    本主题由 hui.chen 于 2015-1-28 15:30:30 移动
weiwei.fu
注册用户
等级:上尉
经验:661
发帖:47
精华:0
注册:2013-12-12
状态:离线
发送短消息息给weiwei.fu 加好友    发送短消息息给weiwei.fu 发消息
发表于: IP:您无权察看 2013-12-16 15:56:32 | [全部帖] [楼主帖] 楼主

原文摘自: http://blog.chinaunix.net/uid-26456800-id-3967623.html
AVA的文件相关类太多了,真扯,谁能记得住啊

Tips:


1.使用RandomAccessFile读取文件,其中seek方法可以按offset移动读取的位置。

2.写byte内容用OutputStream

3.想按byte读内容用InputStreamReader.

4.按行读用BufferedReader,它是一个修饰器,不能直接用一个path new出来。

FileReader filereader = new FileReader("");
         BufferedReader bufferedReader=new BufferedReader(filereader);

代码如下

import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.FileWriter;
import java.io.IOException;
import java.io.OutputStream;
import java.io.OutputStreamWriter;
import java.io.RandomAccessFile;
import java.util.HashMap;

public class helloworld {
         private final static int len = 10000000;
         public static void splitfile(String src, String destfolder) throws Exception{
                 File f = new File(src);
                 long offset = 0;
                 int index = 0;
                while(offset<f.length()){
                         String fName = destfolder + "\\" + String.valueOf(index) + ".data";
                         writefile(src,offset,fName);
                         offset+=len;
                         index++;
                }   
         }
         public static void writefile(String srcfile, long offset, String destfile) throws Exception{
                 RandomAccessFile raf = new RandomAccessFile(srcfile,"r");
                 long bufflen = len;
                 if(bufflen + offset > raf.length()){
                         bufflen = raf.length()-offset;
                 }
                 byte[] buffer = new byte[(int) bufflen];
                 raf.seek(offset);
                 raf.read(buffer);
                 OutputStream fw = new FileOutputStream(destfile);
                 fw.write(buffer);
                 fw.close();
         }

      
         /**
          * @param args
          * @throws Exception
          * @throws IOException
          */
         public static void main(String[] args) throws IOException, Exception {
                 // TODO Auto-generated method stub
                 String path = "c:\\royntest\\wison1@ibm.nsf";
                 splitfile(path, "c:\\royntest");
         }

}

该贴由hui.chen转至本版2015-1-28 15:30:30



赞(0)    操作        顶端 
总帖数
1
每页帖数
101/1页1
返回列表
发新帖子
请输入验证码: 点击刷新验证码
您需要登录后才可以回帖 登录 | 注册
技术讨论