電子書籍の厳選無料作品が豊富!

はじめまして。
あるテキストファイルから、データを読み取り、そのデータを分割して、ファイル出力しようとしています。
そのデータ分割をする際の、サンプルとなるようなコードを紹介していただけないでしょうか?
以上、よろしくお願いいたします。

A 回答 (2件)

改行の分割でいいのならば、例えばこんな感じはどうでしょう。


分割して、指定したファイル名+行番号 というファイルを出力します。


public class DivideFile {

public static void main(String[] args)
{
new DevideFile().divide(new File("test"));
}

void divide(File file)
{
try {
BufferedReader br = new BufferedReader( new FileReader(file));
String line;
for (int i=0; (line = br.readLine()) != null;i++) {
BufferedWriter bw = new BufferedWriter(new FileWriter(new File(file.getName() + i)));
bw.write(line);
bw.close();
}
br.close();
} catch (IOException ioe) {
ioe.printStackTrace();
}
}
}

改行以外での分割であれば、readLine()で一旦ファイルをStringに読み込んでやってから、#1さんの回答の通りsplitやtokenizerを使って文字分割をし、上の例のようにファイルに書き出してやればよいと思います。
    • good
    • 0

「データを読み取り、そのデータを分割」だとちょっと抽象的すぎなので、とりあえずカンマで分割する例をあげておきます。


ファイル読むところは省略します。

void print(String line){
  String[] array = line.split(","); // カンマで分割
  for (int i = 0; i < array.length; i++) {
    System.out.println(array[i]);
  }
}
    • good
    • 1
この回答へのお礼

ありがとうございます。確かに抽象的です。
正確にかかせて頂きます。

テキストファイルから、データを読み取り、while文でデータ全てをoutputする1ファイルに書き込んでいます。

while ((line = br.readLine()) !=null) {
line = br.readLine();
pw.println(line);
}

これを、1ファイルではなく、例えば改行(\n)ごとにファイルを作成
し、10行あれば1行毎のファイルが10個作成できるようにしたいと思っています。
色々試したが上手くいきません。よろしくおねがいします。

お礼日時:2007/06/16 18:07

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!