2017-06-19 4 views
-5

In meiner Code-Methode scanner.hasNext() immer falsches Ergebnis geben. Ich habe es beim Debuggen von Code verstanden. Weiß jemand was für ein Problem? Ich habe die Datei überprüft. Die Datei beginnt mit Strings.java Scanner.hasNext immer falsch

public class TextFileImplementor { 
    public static void main (String [] args){ 
     System.out.println("Enter the name of file\n"); 
     Scanner scanner = new Scanner(System.in); 
     File file = new File(scanner.nextLine()); 
     try { 
      scanner = new Scanner(file); 
      StringBuilder stringBuilder = new StringBuilder(); 
      while (scanner.hasNext()){ 
       stringBuilder.append(scanner.nextLine()); 
      } 
      String [] strings = stringBuilder.toString().split("\\. "); 
      File newFile = new File("new_" + file.getName()); 
      FileWriter fileWriter = new FileWriter(newFile, true); 
      for (String string : 
        strings) { 
       if (string.length()<141){ 
        fileWriter.write(string + "\n"); 
       } 
      } 
     } catch (IOException e) { 
      e.printStackTrace(); 
     } 


    } 
} 
+2

Vielleicht ist die Datei leer? –

+1

Wenn Sie 'scanner.nextLine()' aufrufen, überprüfen Sie mit 'scanner.hasNextLine()'. Wahrscheinlich nicht das Problem, obwohl. –

+0

@AndyTurner, geändert in scanner.hasNextLine(). Das Problem ist nicht gelöst. –

Antwort

0

Problem gelöst! Ich hatte Probleme mit der Kodierung der Eingabedatei. Und ich musste hinzufügen

fileWriter.flush(); 
fileWriter.close();