import java.io.BufferedOutputStream;
import java.io.BufferedReader;
import java.io.BufferedWriter;
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;
import java.io.OutputStream;
import java.io.OutputStreamWriter;

/**
 * <p>
 * Title:ChangeNumber
 * </p>
 * <p>
 * Description:10W个数字,5个一组的切割为3个一组,运行时间3秒。
 * </p>
 * <p>
 * Location:Frostburg
 * </p>
 * 
 * @author: Eric.Chen
 * @date:2017年9月19日上午10:57:26
 */
public class ChangeNumber {
    public static void main(String[] args) throws IOException {
        // FileReader 读取文本文件
        ChangeNumber re = new ChangeNumber();
    
     FileReader fr = new FileReader("F:\\number.txt");
        String str = "";
        for (int i = 0; i < 10000; i++) {// 循环次数按数字个数定
            char len1 = (char)fr.read();//
            str += len1;
        }
        fr.close();
        String t1 = str;
        String finalNumber = re.cutNumber(t1);// 调用切割函数,返回切割后的数字
        // System.out.println(finalNumber);
        // 将结果写到另一个文本文件中
         FileWriter fw = new FileWriter("F:\\new.txt"); 
        
        char[] charArray = finalNumber.toCharArray();// 将切割好的字符串转为字符数组
        for (int i = 0; i < charArray.length; i++) {
            fw.write(charArray[i]);// 每次写入一个到指定文本
            fw.flush();// 刷新流

        }
        fw.close();// 关闭流
    }

    public String cutNumber(String str)// 切割字符串,一次切3个
    {
        String str1 = str.replaceAll(" ", "");// 调用方法将字符串中所有的空格都替换
        StringBuffer sb = new StringBuffer();
        for (int i = 0; i < str1.length() - 3; i += 3) {
            String sub = str1.substring(i, i + 3);// 切割
            sb.append(sub);// 连接
            sb.append(" ");// 加空格隔开
        }
        String str3 = sb.toString();// 转化成完整的字符串
        return str3;

    }
}

 

posted on 2017-09-22 08:19  落地有声  阅读(350)  评论(0编辑  收藏  举报