A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 宗士为 中级黑马   /  2012-5-15 09:10  /  1650 人查看  /  2 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

代码需求是:把一个文件A分成3个部分   分别存入新建的B文件夹中   并删掉A文件   将B文件改名和A的名字一样

以下是原代码   红色部分是for循环将文件分成3部分的主体   有点不明白是怎么实现的   中间每步都做了什么  一步一步 的怎么实现

请明白人说下   求解

import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;

public class Exercise6 {

        public static void main(String[] args) throws IOException {
                System.out.println("请输入要分割的文件路径:");
                File file = Util.getFile();                //这个是自己编的工具类Util  可以对输入的路径进行判断是否正确  返回正确的路径名(就是前面的File)                                       
               
                File tempDir = new File(file.getParent(), ".temp");       
                tempDir.mkdir();
               
                long partLen = file.length() / 3 + 1;                               
                FileInputStream fis = new FileInputStream(file);       
                for (int i = 0; i < 3; i++) {                                               
                        FileOutputStream fos = new FileOutputStream(new File(tempDir, i + ""));               
                        byte[] buffer = new byte[(int) partLen];               
                        int len = fis.read(buffer);                                               
                        fos.write(buffer, 0, len);                                               
                        fos.close();                                                                       
                }
                fis.close();
               
                file.delete();                               
                tempDir.renameTo(file);               
}


红色部分是

评分

参与人数 1技术分 +1 收起 理由
贠(yun)靖 + 1

查看全部评分

2 个回复

倒序浏览
这个是我自定义的Util工具

import java.io.BufferedReader;
import java.io.File;
import java.io.IOException;
import java.io.InputStreamReader;

public class Util {
       
        public static File getDir() throws IOException {
                BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
                while (true) {
                        File file = new File(br.readLine());       
                        if (!file.exists())                                               
                                System.out.println("您输入的路径不存在, 请重新输入:");
                        else if (!file.isDirectory())                       
                                System.out.println("您输入的不是文件夹路径, 请重新输入:");
                        else
                                return file;                       
                }
        }
       
}
回复 使用道具 举报
for (int i = 0; i < 3; i++) {      //有循环,每循环一次都要创建一个FileOutputStream流,每创建一个流都会分割出一个文件                                          
                        FileOutputStream fos = new FileOutputStream(new File(tempDir, i + ""));               
                        byte[] buffer = new byte[(int) partLen];               
                        int len = fis.read(buffer);                                                
                        fos.write(buffer, 0, len);                                                
                        fos.close();                                                                        
                }
有循环,每循环一次都要创建一个FileOutputStream流,每创建一个流都会分割出一个文件
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马