Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » Java » Writer funktioniert nicht :/

Forum | Hilfe | Team | Links | Impressum | > Suche < | Mitglieder | Registrieren | Einloggen
  Quicklinks: MSDN-Online || STL || clib Reference Grundlagen || Literatur || E-Books || Zubehör || > F.A.Q. < || Downloads   

Autor Thread - Seiten: > 1 <
000
07.10.2005, 18:37 Uhr
~BP
Gast


//Es wird alles richtig in der Konsolen ausgegeben, das File erstellt jedoch ohne Inhalt
// Eigenltich muesste aber alles Korrekt in de File geschrieben werden, weiß irgendwer wieso //das in diesem Fall nicht so ist oder wie man das Lösen könnte



Code:

package main;

import java.io.*;

public class Main {

    public static void main(String[] args) {


        // TODO Auto-generated method stub
        try {
            FileReader reader = new FileReader(args[0]);
            BufferedReader leser = new BufferedReader(reader);
            
            String filename=args[0].substring(0,args[0].length()-4);
            FileWriter writer= new FileWriter(filename+"_palindrom.txt");
            BufferedWriter schreiber = new BufferedWriter(writer);

            
            
            String tmp = new String("leer");
            
            schreiber.write(tmp);
            
            while((tmp!=null)||(tmp.length()>0)){
            tmp = leser.readLine();
            
            if(tmp.length()>0)
            {

            boolean isPalindrom = new StringBuffer(tmp).reverse().toString().equalsIgnoreCase(tmp);
            if(isPalindrom){
                schreiber.write(tmp);
                System.out.println("YES");
            }
            else
            {
                schreiber.write(tmp);
                System.out.println("NO");
            }
            }
            }

                
        } catch (FileNotFoundException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        } catch (IOException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }catch (NullPointerException e) {
            // TODO Auto-generated catch block
        }
        
    }

}



Danke

Dieser Post wurde am 07.10.2005 um 18:37 Uhr von FloSoft editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
001
07.10.2005, 23:22 Uhr
~Gast
Gast


Wenn ich mich jetzt nicht täusche wird es wohl an dem fehlenden schreiber.close(); liegen.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
002
08.10.2005, 12:17 Uhr
~BP
Gast


Nein, am fehlenden schreiber.close(); liegt es definitiv nicht.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
003
30.10.2005, 16:13 Uhr
typecast
aka loddab
(Operator)


Der Grund ist wohl eher die java.lang.NullPointerException, die ausgeloest wird, sobald das Ende der Datei erreicht ist.


C++:
            tmp = leser.readLine();
            if(tmp.length()>0)



Hier liest du eine Zeile aus der Datei. Ist der Stream am Dateiende angekommen, wird tmp auf null gesetzt.
In der naechsten Zeile greifst du auf diesen null-Wert zu und bekommst vollgerichtig eine Excpetion.
Das fuehrt dazu, dass der BufferedWrite nicht gesynct wird (es wird also nix geschrieben).

Du musst tmp direkt nach dem lesen ueberpruefen. Ausserdem gehoert bei der NullPointerException noch ne Fehlermeldung hin
--
All parts should go together without forcing. ... By all means, do not use a hammer. (IBM maintenance manual, 1925)
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
Seiten: > 1 <     [ Java ]  


ThWBoard 2.73 FloSoft-Edition
© by Paul Baecher & Felix Gonschorek (www.thwboard.de)

Anpassungen des Forums
© by Flo-Soft (www.flo-soft.de)

Sie sind Besucher: