- 締切済み
INPUTデータを分割したい!
はじめまして。 あるテキストファイルから、データを読み取り、そのデータを分割して、ファイル出力しようとしています。 そのデータ分割をする際の、サンプルとなるようなコードを紹介していただけないでしょうか? 以上、よろしくお願いいたします。
- みんなの回答 (2)
- 専門家の回答
みんなの回答
- hekkusyoi
- ベストアンサー率0% (0/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)
「データを読み取り、そのデータを分割」だとちょっと抽象的すぎなので、とりあえずカンマで分割する例をあげておきます。 ファイル読むところは省略します。 void print(String line){ String[] array = line.split(","); // カンマで分割 for (int i = 0; i < array.length; i++) { System.out.println(array[i]); } }
お礼
ありがとうございます。確かに抽象的です。 正確にかかせて頂きます。 テキストファイルから、データを読み取り、while文でデータ全てをoutputする1ファイルに書き込んでいます。 while ((line = br.readLine()) !=null) { line = br.readLine(); pw.println(line); } これを、1ファイルではなく、例えば改行(\n)ごとにファイルを作成 し、10行あれば1行毎のファイルが10個作成できるようにしたいと思っています。 色々試したが上手くいきません。よろしくおねがいします。