內(nèi)蒙古java團(tuán)隊

          j2se,j2ee開發(fā)組
          posts - 139, comments - 212, trackbacks - 0, articles - 65
            BlogJava :: 首頁 :: 新隨筆 :: 聯(lián)系 :: 聚合  :: 管理
          以下是我寫的幾個用JAVA實現(xiàn)將.txt文件分隔成小文件的程序,供大家參考下
          程序一:
          /**
          ?*?文件分隔
          ?*/
          package?com.basic.io;

          import?java.io.BufferedReader;
          import?java.io.File;
          import?java.io.FileInputStream;
          import?java.io.FileOutputStream;
          import?java.io.FileReader;
          import?java.io.FileWriter;
          import?java.io.IOException;
          import?java.io.InputStreamReader;

          /**
          ?*?@author?Administrator
          ?*
          ?*/
          public?class?FileSeparator?{

          ????/**
          ?????*?按字節(jié)分隔
          ?????*?@param?sourceFileUrl?源文件路徑如:c:/a.txt
          ?????*?@param?targetFileUrl?目標(biāo)文件路徑文件夾(最好在盤符下,我沒有創(chuàng)建文件夾):?c:/
          ?????*/
          ????public?void?separateFileByByte(String?sourceFileUrl,?String?targetFileUrl)?{
          ????????File?sourceFile?=?new?File(sourceFileUrl);
          ????????String?sourceFileName?=?sourceFile.getName().split(".txt")[0];?//獲得源文件名稱
          ????????try?{
          ????????????FileInputStream?fis?=?new?FileInputStream(sourceFile);?//源文件文件流
          ????????????int?temp;
          ????????????FileOutputStream?fos?=?null;?//目標(biāo)文件文件流
          ????????????int?size?=?0;?//記錄文件大小
          ????????????int?countFile?=?1;?//子文件數(shù)目
          ????????????File?targetFile?=?null;
          ????????????do?{
          ???????????????
          ????????????????if?(size?%?100?==?0)?{
          ????????????????????String?targetFileName?=?targetFileUrl?+?sourceFileName?+?countFile?+?".txt";?//目標(biāo)文件名稱,以源文件名稱加數(shù)據(jù)命名
          ????????????????????targetFile?=?new?File(targetFileName);
          ????????????????????if?(fos?!=?null)?{
          ????????????????????????fos.flush();?//刷新該流的緩沖
          ????????????????????????fos.close();?//關(guān)閉流
          ????????????????????}
          ????????????????????fos?=?new?FileOutputStream(targetFile);
          ????????????????????countFile++;
          ????????????????}
          ???????????????
          ????????????????temp?=?fis.read();?//讀文件
          ????????????????size++;
          ????????????????fos.write(temp);?//寫文件
          ???????????????
          ????????????}?while?(fis.available()>0);????//判斷源文件是否還有流,即有沒有讀完
          ???????????
          ????????????fis.close();
          ????????????fos.flush();
          ????????????fos.close();
          ????????????System.out.println("File?separate?End!"?);
          ????????}?catch?(Exception?e)?{
          ????????????e.printStackTrace();
          ????????}
          ????}
          ???
          ????/**
          ?????*?按字符分隔
          ?????*?@param?sourceFileUrl
          ?????*?@param?targetFileUrl
          ?????*/
          ????public?void?separateFileByChar(String?sourceFileUrl,?String?targetFileUrl)?{
          ????????File?sourceFile?=?new?File(sourceFileUrl);
          ????????String?sourceFileName?=?sourceFile.getName().split(".txt")[0];?//獲得源文件名稱
          ????????try?{
          ????????????FileReader?fr?=?new?FileReader(sourceFile);?//源文件文件流
          ????????????System.out.println("encoding:"?+?fr.getEncoding());
          ????????????int?temp;
          ????????????FileWriter?fw?=?null;?//目標(biāo)文件文件流
          ????????????int?size?=?0;?//記錄文件大小
          ????????????int?countFile?=?1;?//子文件數(shù)目
          ????????????File?targetFile?=?null;
          ????????????do?{
          ???????????????
          ????????????????if?(size?%?100?==?0)?{
          ????????????????????String?targetFileName?=?targetFileUrl?+?sourceFileName?+?countFile?+?".txt";?//目標(biāo)文件名稱,以源文件名稱加數(shù)據(jù)命名
          ????????????????????targetFile?=?new?File(targetFileName);
          ????????????????????if?(fw?!=?null)?{
          ????????????????????????fw.flush();?//刷新該流的緩沖
          ????????????????????????fw.close();//關(guān)閉流
          ????????????????????}
          ????????????????????fw?=?new?FileWriter(targetFile);
          ????????????????????countFile++;
          ????????????????}
          ???????
          ????????????????temp?=?fr.read();//讀文件
          ????????????????size++;
          ????????????????fw.write(temp);//寫文件
          ???????????????
          ????????????}?while?(temp?!=?-1);//判斷源文件是否還有流,即有沒有讀完
          ???????????
          ????????????fr.close();
          ????????????fw.flush();
          ????????????fw.close();
          ????????????System.out.println("File?separate?End!"?);
          ????????}?catch?(Exception?e)?{
          ????????????e.printStackTrace();
          ????????}
          ????}
          ???
          ????/**
          ?????*?@param?args
          ?????*/
          ????public?static?void?main(String[]?args)?{
          ???????
          ????????BufferedReader?br?=?new?BufferedReader(new?InputStreamReader(System.in));
          ????????String?sourceFileUrl?=?null;
          ????????String?targetFileUrl?=?null;
          ????????//輸入源文件路徑
          ????????System.out.println("Source?File?Url:?\t");
          ????????try?{
          ????????????sourceFileUrl?=?br.readLine();
          ????????}?catch?(IOException?e)?{???????????
          ????????????e.printStackTrace();
          ????????}
          ????????//輸入目標(biāo)文件路徑
          ????????System.out.println("\nTarget?File?Url:?\t");
          ????????try?{
          ????????????targetFileUrl?=?br.readLine();
          ????????}?catch?(IOException?e)?{
          ????????????e.printStackTrace();
          ????????}
          ???????
          ????????System.out.println("Source?File:?"?+?sourceFileUrl?+?"\nTarget?File:?"?+?targetFileUrl);
          ????????FileSeparator?fs?=?new?FileSeparator();
          ????????fs.separateFileByByte(sourceFileUrl,?targetFileUrl);
          ????}

          }
          程序二:
          /**
          ?*?用緩沖流實現(xiàn)文件分隔
          ?*/
          package?com.basic.io;

          import?java.io.*;
          public?class?TestBufferStream?{
          ??public?static?void?main(String[]?args)?{
          ????try?{
          ??????BufferedReader?br?=?new?BufferedReader(new?FileReader("c:/Java編碼規(guī)范.txt"));
          ??????BufferedWriter?bw?=?null;
          ??????String?s?=?null;?//單行內(nèi)容
          ??????int?countLine?=?0;?//總行數(shù)
          ??????int?countFile?=?1;?//子文件數(shù)
          ??????while((s=br.readLine())!=null){
          ????????if?(countLine?%?50?==?0)?{?
          ????????????if?(bw?!=?null)?{
          ????????????????bw.flush();
          ????????????????bw.close();
          ????????????}
          ????????????bw?=?new?BufferedWriter(new?FileWriter("c:/Java編碼規(guī)范"?+?countFile?+?".txt"));
          ????????????countFile++;???????????
          ????????}
          ????????bw.write(s);
          ????????bw.newLine();
          ????????System.out.println(s);
          ????????countLine++;
          ??????}
          ??????System.out.println("countLine:"?+?countLine);
          ?????
          ??????bw.close();
          ??????if(countLine?!=?0){
          ??????????bw.flush();
          ??????????bw.close();
          ????????????????
          ??????}

          ????}?catch?(IOException?e)?{?e.printStackTrace();}
          ??}
          }
          程序三:
          /**
          ?*?用字符流實現(xiàn)文件分隔 
          ?*/
          package?com.basic.io;

          import?java.io.FileReader;
          import?java.io.FileWriter;
          import?java.io.IOException;

          /**
          ?*?@author?Administrator
          ?*
          ?*/
          public?class?TestFileReader?{
          ????public?static?final?int?charSize?=?1024;
          ????/**
          ?????*?@param?args
          ?????*/
          ????public?static?void?main(String[]?args)?{
          ????????//?TODO?Auto-generated?method?stub
          ????????try?{
          ????????????FileReader?fr?=?new?FileReader("c:/Java編碼規(guī)范.txt");
          ????????????FileWriter?fw?=?null;
          ????????????char[]?bfc?=?new?char[charSize];
          ????????????int?temp;?//單個字符
          ????????????int?countWord?=?0;?//字符數(shù)
          ????????????int?countFile?=?1;?//子文件數(shù)
          ????????????while((temp=fr.read())!=-1){
          ??????????????if?(countWord?%?charSize?==?0)?{???????????
          ??????????????????fw?=?new?FileWriter("c:/Java編碼規(guī)范"?+?countFile?+?".txt");???????????
          ??????????????????countFile++;
          ??????????????}
          ??????????????bfc[countWord]?=?(char)temp;
          ?????????????
          ??????????????if?(countWord?==?charSize?-1)?{
          ??????????????????fw.write(bfc);
          ??????????????????fw.flush();
          ??????????????????fw.close();
          ??????????????????countWord?=?0;
          ??????????????}????else?{
          ??????????????????countWord++;
          ??????????????}

          ????????????}
          ????????????fr.close();
          ????????????if?(countWord?>?0)?{
          ????????????????fw.write(bfc);
          ????????????????fw.flush();
          ????????????????fw.close();
          ????????????}

          ??????????}?catch?(IOException?e)?{
          ??????????????e.printStackTrace();
          ??????????}
          ????}

          }
          主站蜘蛛池模板: 南岸区| 大姚县| 蒙阴县| 平利县| 大理市| 逊克县| 布拖县| 龙胜| 桃源县| 江口县| 绥德县| 华坪县| 天峻县| 平安县| 榆社县| 玉树县| 合江县| 苍梧县| 余干县| 南靖县| 健康| 和田县| 望谟县| 怀集县| 南京市| 甘洛县| 涿州市| 凤庆县| 松阳县| 都江堰市| 太仆寺旗| 甘泉县| 女性| 灵璧县| 苍山县| 鄢陵县| 邵东县| 鲜城| 白水县| 横山县| 新津县|