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; } }