大きなサイズのファイルとか、テキストエディターで
開けなかったりする場合に、使用すると便利です。
public static void main(String[] args) {
}
を実装して使ってみてください。
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
public class DivideFileClass {
public boolean divideFile(File fi, int row) {
return this.divideFile(fi, row, "UTF-8", "UTF-8");
}
public boolean divideFile(File fi, int row, String iCode, String oCode) {
BufferedReader br = null;
BufferedWriter bw = null;
FileInputStream fis = null;
FileOutputStream fos = null;
InputStreamReader isr = null;
OutputStreamWriter osw = null;
String line = null;
int count = 0;
int fileNo = 1;
try {
fis = new FileInputStream(fi);
isr = new InputStreamReader(fis, iCode);
br = new BufferedReader(isr);
fos = new FileOutputStream(fi.getPath() + String.valueOf(fileNo));
osw = new OutputStreamWriter(fos, oCode);
bw = new BufferedWriter(osw);
while ((line = br.readLine()) != null) {
bw.write(line);
bw.newLine();
if (count == row) {
bw.close();
fileNo++;
fos = new FileOutputStream(fi.getPath() + String.valueOf(fileNo));
osw = new OutputStreamWriter(fos, oCode);
bw = new BufferedWriter(osw);
count = 0;
}
count++;
}
bw.close();
} catch (FileNotFoundException e) {
e.printStackTrace();
return false;
} catch (IOException e) {
e.printStackTrace();
return false;
}
return true;
}
}
0 件のコメント:
コメントを投稿