Πρόβλημα με αντικατάσταση γραμμάτων σε αρχείο

Συζητήσεις για την Java

Συντονιστές: WebDev Moderators, Super-Moderators

Απάντηση
katerinaaa
Δημοσιεύσεις: 109
Εγγραφή: 28 Ιαν 2010 12:46

Πρόβλημα με αντικατάσταση γραμμάτων σε αρχείο

Δημοσίευση από katerinaaa » 18 Μάιος 2010 17:49

Γεια σας,
προσπαθώ να λύσω μια άσκηση με αρχεία στη java αλλά για κάποιο λόγο δε μου δουλεύει.
Τι κάτι λάθος ?

Ο κώδικας μου είναι ο ακόλουθος :

Κώδικας: Επιλογή όλων



import java.io.*;


class Replacing_class
{

        public static String changeString(String str)
        {
            char letter; 
            int len;
            int counter_x=0,counter_k=0 ;
            
            len = str.length();
            
            for &#40;int i = 0; i < len; i++&#41; 
            &#123;
                letter = str.charAt&#40;i&#41;;
                
                if &#40;letter == 'x'&#41;
                    counter_x++;
                else if &#40;letter == 'k'&#41;
                    counter_k++;
            &#125;
            
            
            
            
                
            if&#40;counter_k > counter_x&#41;
              str = str.replace&#40;'k', 'x'&#41;;
            else if &#40;counter_x > counter_k&#41;
              str = str.replace&#40;'x', 'k'&#41;;
            else
              str="FALSE";
            
                
          return str;
         &#125;
    
        
        
        public static void main&#40;String&#91;&#93; args&#41; 
       &#123;
        
           try &#123; 
               
               BufferedReader in = new BufferedReader&#40;new FileReader&#40;"NewFile.txt"&#41;&#41;; 
               BufferedWriter out = new BufferedWriter&#40;new FileWriter&#40;"NewFile.txt"&#41;&#41;; 
               String str; 
               String writestr; 
               int counter = 0;
               
               while &#40;&#40;str = in.readLine&#40;&#41;&#41; != null&#41; 
               &#123; 
                   if&#40;counter == 50&#41;
                      break;
                    
                   writestr = changeString&#40;str&#41;; 
                   out.write&#40;writestr&#41;;
                   out.write&#40;"\n"&#41;;
                   
                   counter++;
                &#125; 
                
                in.close&#40;&#41;; 
                out.close&#40;&#41;;
            
            &#125; catch &#40;IOException e&#41; &#123; &#125; 
        
        
       &#125;
&#125;

Ευχαριστώ εκ των προτέρων

Άβαταρ μέλους
theminio
Δημοσιεύσεις: 150
Εγγραφή: 20 Ιουν 2006 20:26

Πρόβλημα με αντικατάσταση γραμμάτων σε αρχείο

Δημοσίευση από theminio » 19 Μάιος 2010 02:05

Γεια σου,
το πρόβλημα είναι ότι προσπαθείς να διαβάσεις και να γράψεις από/στο ίδιο αρχείο και όταν πας να γράψεις στο αρχείο, σβηνονται τα περιεχόμενα του και μετά δεν έχεις δεδομένα να διαβάσεις στην επόμενη επανάληψη.

Εάν αλλάξεις το

Κώδικας: Επιλογή όλων

     
  BufferedWriter out = new BufferedWriter&#40;new FileWriter&#40;"NewFile.txt"&#41;&#41;; 
σε
 BufferedWriter out = new BufferedWriter&#40;new FileWriter&#40;"NewFile.txt",true&#41;&#41;; 
θα κάνει προσθήκη των αλλαγμένων λέξεων στο τέλος του αρχείο.

Αλλιώς θα πρέπει να γράφεις τα δεδομένα σε ένα άλλο αρχείο NewFile2.txt ή κατά το loop να περνάς τις λέξεις(τα εκάστοτε writestr) σε ένα array από συμβολοσειρές και μετά το τέλος του loop να τα γράφεις στο αρχείο ΝewFile.txt

Απάντηση

Επιστροφή στο “Java”

Μέλη σε σύνδεση

Μέλη σε αυτήν τη Δ. Συζήτηση: Δεν υπάρχουν εγγεγραμμένα μέλη και 0 επισκέπτες