Αν έχουμε ένα αρχείο Data.txt 2.000 γραμμών, με όλες τις γραμμές του γεμάτες με κάποιο String και έστω ότι θέλουμε ένα πρόγραμμα σε Java που να κάνει τα εξής βήματα:
1. να διαβάζει όλες τις γραμμές του Data.txt μία μία και να τις γράφει επίσης μία μία σε ένα νέο txt, έστω Data2.txt,
2. να επιστρέφει στην αρχή της πρώτης γραμμής και να επαναλαμβάνει το (1) με άλλο txt, Data3.txt,
3. να επιστρέφει στην αρχή της πρώτης γραμμής και να διαβάζει μέχρι και τη γραμμή 100 και να γράφει τις γραμμές σε άλλο txt, έστω Data4.txt,
4. να διαβάζει από τη γραμμή 101 μέχρι και τη γραμμή 200 και να γράφει τις γραμμές σε άλλο txt, έστω Data5.txt,
5. να διαβάζει από τη γραμμή 201 μέχρι τη γραμμή 2000 και να γράφει τις γραμμές σε άλλο txt, έστω Data6.txt,
τότε το ακόλουθο πρόγραμμα γιατί βγάζει java.io.IOException: Mark invalid
;
Code: Select all
import java.io.*;
public class Program {
public static void main(String args[]){
String str = "";
try{
BufferedReader data1 = new BufferedReader(new InputStreamReader(new FileInputStream("Data.txt")));
BufferedWriter data2 =new BufferedWriter(new OutputStreamWriter(new FileOutputStream("Data2.txt")));
BufferedWriter data3 =new BufferedWriter(new OutputStreamWriter(new FileOutputStream("Data3.txt")));
BufferedWriter data4 =new BufferedWriter(new OutputStreamWriter(new FileOutputStream("Data4.txt")));
BufferedWriter data5 =new BufferedWriter(new OutputStreamWriter(new FileOutputStream("Data5.txt")));
BufferedWriter data6 =new BufferedWriter(new OutputStreamWriter(new FileOutputStream("Data6.txt")));
data1.mark(1000);
for(int i = 0; i < 2000; i++){
str = "";
str = (data1.readLine()).trim();
data2.write(str);
if (i != 2000) data2.newLine();
}
data2.close();
data1.reset();
for(int i = 0; i < 2000; i++){
str = "";
str = (data1.readLine()).trim();
data3.write(str);
if (i != 2000) data3.newLine();
}
data3.close();
data1.reset();
for(int i = 0; i < 100; i++){
str = "";
str = (data1.readLine()).trim();
data4.write(str);
if (i != 100) data4.newLine();
}
data4.close();
for(int i = 0; i < 100; i++){
str = "";
str = (data1.readLine()).trim();
data5.write(str);
if (i != 100) data5.newLine();
}
data5.close();
for(int i = 0; i < 1800; i++)
{ str = "";
str = (data1.readLine()).trim();
data6.write(str);
if (i != 1800) data6.newLine();
}
data6.close();
data1.close();
}
catch(IOException ioe){ System.out.println(ioe.toString()); }
}
}