2015-12-13 16 views
0

Мне нужно написать Java-код для разделения большого файла на несколько меньших файлов.Разделить входной файл на несколько файлов

Мой файл выглядит

Begin for all values of X 
1 abc 5:40 
2 pqr 6:40 
3 xyz 7:40 
End 

Begin for all values of Y 
1 ccc 9:40 
2 ddd 8:40 
3 lll 6:40 
End 

выход будет:

X.txt(Filename) 
1 abc 5:40 
2 pqr 6:40 
3 xyz 7:40 

Y.txt(Filename) 
1 ccc 9:40 
2 ddd 8:40 
3 lll 6:40 
+0

Что вы пробовали? SO не является кодирующей услугой. Пожалуйста, отредактируйте свой вопрос! – jogo

+0

Это относительно легко сделать. Какой код вы пробовали до сих пор? О, и ... Это для школы ?! :) – DevilsHnd

ответ

0

Ваш вопрос не понятен, вы можете разделить строку на массив строк с помощью некоторого выражения с этим ...

String[] yourStringArray = yourString.split("regularExpression"); 
//here regular expression is the character by which you will split string 
0

Следующий код делает то, что вам нужно. Чтобы проверить границу файла, я тестирую, если строка начинается с Begin for all values of, если у вас есть другое условие, ее можно заменить на эту.

import java.io.BufferedReader; 
import java.io.BufferedWriter; 
import java.io.FileNotFoundException; 
import java.io.FileReader; 
import java.io.FileWriter; 
import java.io.IOException; 
import java.io.Writer; 

public class Test { 

    public static void main(String[] args) { 
     BufferedReader reader = null; 
     try { 
      reader = new BufferedReader(new FileReader("input.txt")); 
      String line = null; 
      BufferedWriter writer = null; 
      while((line = reader.readLine()) != null) { 
       if(line.startsWith("Begin for all values of")) { 
        String fileName = line.substring(line.length() -1); 
        closeWriter(writer); 

        writer = new BufferedWriter(new FileWriter(fileName + ".txt")); 
       } 
       writer.write(line + "\n"); 
      } 
      closeWriter(writer); 
     } catch (FileNotFoundException e) { 
      e.printStackTrace(); 
     } catch (IOException e) { 
      e.printStackTrace(); 
     } finally { 
      if(reader != null) { 
       try { 
        reader.close(); 
       } catch (IOException e) { 
        e.printStackTrace(); 
       } 
      } 
     } 
    } 

    public static void closeWriter(Writer output) { 
     try { 
      if(output != null) { 
       output.close(); 
      } 
     } catch (IOException e) { 
      e.printStackTrace(); 
     } 
    } 

} 
Смежные вопросы