Ich habe eine input.txt
Datei, die aus 520 Zeilen bestehen. Ich muss einen Code in Java machen, der sich so verhält.Erstellen Sie mehrere Dateien aus einer Textdatei in Java
Erstellen Sie die erste Datei mit dem Namen file-001.txt
aus den ersten 200 Zeilen. dann erstellen Sie eine weitere file-002
von 201-400 Zeilen. dann file-003.txt
aus den restlichen Zeilen.
Ich habe dies codiert, es schreiben nur die ersten 200 Zeilen. Welche Änderungen muss ich vornehmen, um das obige Szenario zu aktualisieren?
public class DataMaker {
public static void main(String args[]) throws IOException{
DataMaker dm=new DataMaker();
String file= "D:\\input.txt";
int roll=1;
String rollnum ="file-00"+roll;
String outputfilename="D:\\output\\"+rollnum+".txt";
String urduwords;
String path;
ArrayList<String> where = new ArrayList<String>();
int temp=0;
try(BufferedReader br = new BufferedReader(new FileReader(file))) {
for(String line; (line = br.readLine()) != null;) {
++temp;
if(temp<201){ //may be i need some changes here
dm.filewriter(line+" "+temp+")",outputfilename);
}
}
} catch (FileNotFoundException e) {
System.out.println("File not found");
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
void filewriter(String linetoline,String filename) throws IOException{
BufferedWriter fbw =null;
try{
OutputStreamWriter writer = new OutputStreamWriter(
new FileOutputStream(filename, true), "UTF-8");
fbw = new BufferedWriter(writer);
fbw.write(linetoline);
fbw.newLine();
}catch (Exception e) {
System.out.println("Error: " + e.getMessage());
}
finally {
fbw.close();
}
}
}
Eine Möglichkeit kann Gebrauch von if else
sein, aber ich kann es nur benutzen, weil meine eigentliche Datei 6000+ Linien ist.
Ich möchte, dass dieser Code funktioniert, wie ich den Code ausführen und mir mehr als 30 Ausgabedateien geben.
Wahrscheinlich auf dem richtigen Weg hier. Statt <201, sehen Sie [modulus arithmatic] (http://stackoverflow.com/questions/90238/whats-the-syntax-for-mod-in-java). –