• 締切済み

INPUTデータを分割したい! 

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

みんなの回答

回答No.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を使って文字分割をし、上の例のようにファイルに書き出してやればよいと思います。

  • thamansa
  • ベストアンサー率40% (95/232)
回答No.1

「データを読み取り、そのデータを分割」だとちょっと抽象的すぎなので、とりあえずカンマで分割する例をあげておきます。 ファイル読むところは省略します。 void print(String line){   String[] array = line.split(","); // カンマで分割   for (int i = 0; i < array.length; i++) {     System.out.println(array[i]);   } }

active1000
質問者

お礼

ありがとうございます。確かに抽象的です。 正確にかかせて頂きます。 テキストファイルから、データを読み取り、while文でデータ全てをoutputする1ファイルに書き込んでいます。 while ((line = br.readLine()) !=null) { line = br.readLine(); pw.println(line); } これを、1ファイルではなく、例えば改行(\n)ごとにファイルを作成 し、10行あれば1行毎のファイルが10個作成できるようにしたいと思っています。 色々試したが上手くいきません。よろしくおねがいします。

関連するQ&A