Προς το περιεχόμενο

Σκάλωμα σε java


nick_in

Προτεινόμενες αναρτήσεις

Δημοσ.

Γεια σας παιδιά, έχω ένα θέμα με τους FileReader κ FileWriter,

δηλαδή εφτιαξα ενα προγραμμα αλλα κολλαει στο κομματι:

FileReader reader = new FileReader("file1.txt");

BufferedReader br = new BufferedReader(reader);

BufferedWriter out;

out = new BufferedWriter( new FileWriter("file2.txt"));

while ( br.ready() ) {

char ch = (char)br.read();

if(ch!=' ')

out.write(ch);

else

out.write('@');

}

String tmp;

tmp = out.readLine();

while(tmp != null){

out.write(tmp+"\n");

tmp = out.readLine();

}

br.close();

out.close();

}

 

αυτο που θελω να κανω ειναι αφου διαβασω ενα αρχειο να το επεξεργαστω

και στη σηνεχεια να στειλω το αποτελεσμα σε ενα αλλο αρχειο.Τα try και τις εξαιρεσεις τις εχω βαλει,

το προβλημα ειναι αφου το διαβαζει γραμμα, γραμμα to file1 και το στελενει στο file2, μετα δεν μπορει να το διαβασει γραμμη

γραμμη το file2 για να το ξαναεπεξεργστω..

Μπορει καποιος να με βοηθησει?

Ευχαριστω

Δημοσ.

Το λάθος σου είναι οτι προσπαθείς να διαβάσεις από μια κλάση που δεν διαβάζει. Από το BufferedWriter δεν μπορείς να διαβάσεις, μόνο να γράψεις.

Δημοσ.

Σε ευχαριστω αλλα το καταλαβα αυτο. Προσπαθησα να τα κλεισω το writer και τον reader και ανοιξω καινουργιους με αλλο ονομα και pali to file2 ως εισοδο και εξοδο και δεν γινεται τιποτα,ειναι σαν να μην το διαβαζει καν..εχεις να προτεινεις τιποτα?

Δημοσ.

Προσωπικά μου αρέσουν οι δύο παρακάτω κλάσεις σε σχέση με αυτά που χρησιμοποιείς εσύ (αναλόγως βέβαια και τι θέλεις να κάνεις ακριβώς). Μέχρι το σημείο που αλλάζεις το κενό με το '@' στο έχω κάνει. Σου ανοίγω και το αρχείο και εκεί κάνεις ότι θέλεις.

>public static void main(String[] args) throws IOException {
       
       Scanner reader = new Scanner(new File("file1.txt"));
       PrintWriter writer = new PrintWriter(new File("file2.txt"));
       
       while(reader.hasNextLine()){
           writer.println(reader.nextLine().replace(' ', '@'));
       }
       reader.close();
       writer.close();

       reader = new Scanner(new File("file2.txt"));
       while(reader.hasNextLine()){
           // εδώ έχεις ανοίξει και διαβάζεις το αρχείο που πριν έγραφες
       }
   }

Δημοσ.

κάτι τέτοιο σου κάνει?

>
import java.io.*;

public class TestTest{

public TestTest(){
BufferedReader in = null;
BufferedWriter out = null;
try{
in = new BufferedReader(new FileReader("file1.txt"));
out = new BufferedWriter( new FileWriter("file2.txt"));
//
while ( in.ready() ) {
	char ch = (char)in.read();
	if(ch!=' ')
		out.write(ch);
	else
		out.write('@');
}
out.close();
in.close();
in = new BufferedReader(new FileReader("file2.txt"));
out = new BufferedWriter( new FileWriter("file3.txt"));
String tmp= in.readLine();
while(tmp != null){
	out.write(tmp+"\n");
	tmp = in.readLine();
}
in.close();
out.close();
}catch(IOException e){
System.out.println("error="+e.getMessage());
}
}

public static void main(String args[]){
new TestTest();
}


}

Δημοσ.

Ολα ενταξει τρεχει μια χαρα!Το εκανα με τον τροπο του virxen75 αλλα και ο τροπος σου comptura13 μου αρεσε!Στο δευτερο κομματι

ηθελα να αφησω μια κενη γραμμη μετα απο καθε κανονικη γραμμη του αρχειου, οποτε το υλοποιησα ετσι:

String tmp= in.readLine();

while(tmp != null){

out.write(tmp);

out.newLine();

out.newLine();

tmp = in.readLine();

}

Σας ευχαριστω παιδια και τους 2!

Αρχειοθετημένο

Αυτό το θέμα έχει αρχειοθετηθεί και είναι κλειστό για περαιτέρω απαντήσεις.

  • Δημιουργία νέου...