老规矩直接上代码:
package com.example.filereadertest.com.rh.test;
import java.io.*;
import java.util.ArrayList;
import java.util.List;
public class Test3 {
public static void main(String[] args) {
try {
//拆分成10份
splitTxt(10);
} catch (IOException e) {
throw new RuntimeException(e);
}
}
/**
* 拆分TXT文件
* @param count 拆分的份数
*/
public static void splitTxt(int count) throws IOException {
FileReader read = null;
BufferedReader br=null;
try {
//读取文件
read= new FileReader("D:\\logs\\loginAccount.txt");
br= new BufferedReader(read);
String row;
List<FileWriter> list = new ArrayList<FileWriter>();
for (int i = 0; i < count; i++) {
//生成的文件名称
list.add(new FileWriter("D:\\logs\\loginAccount" + i + ".txt"));
}
int rowNum = 1;
while ((row = br.readLine()) != null) {
//根据分割文件数取模,平均分配到每个文件中
list.get(rowNum % count).append(row + "\r\n");
rowNum++;
}
for (int i = 0; i < list.size(); i++) {
list.get(i).close();
}
} catch (Exception e) {
e.printStackTrace();
}finally {
read.close();
br.close();
}
System.out.println("拆分完成!");
}
}