2016-12-11 2 views
0

Ich habe Probleme mit der Eingabe, um die Datei zu erstellen, die ich die Zeilen aus einer anderen Datei in schreiben möchte. Wenn mein Code die Datei erreicht Name, den ich erstellen möchte, es lässt mich nichts eingeben, nachdem ich den Dateinamen für die Datei eingegeben habe, die ich öffnen möchte. Ich dachte, das hätte etwas damit zu tun, dass der Scanner nicht das letzte "\ n" oder etwas aufnehmen konnte, also habe ich versucht, es mit sc.nextLine() zu "flushen", nachdem ich es das erste Mal angerufen habe, aber es war nicht t arbeiten. Ich verstehe nicht wirklich die Logik des Systems funktioniert nicht für die zweite nextLine(), sollte es nicht die gleiche wie die erste sein? Kann mir bitte jemand erklären?Java Kopieren aller Inhalte einer Datei in eine andere mit Eingabe zum Lesen/Erstellen des Dateinamens

 try { 
      System.out.println("Enter the file name to open with extension: "); 
      Scanner sc = new Scanner(System.in); 
      File file = new File(sc.nextLine()); 
      sc = new Scanner(file); //opens inputted file name 
//   System.err.println(file.getAbsolutePath()); 

      System.out.println("What is the file name you want to create? "); 
//   sc.nextLine(); 
      File write = new File(sc.nextLine()); 

      PrintWriter writer = new PrintWriter(write); 
//   System.out.println("Copying file contents over... "); 
      while (sc.hasNextLine()) { 
       String line = sc.nextLine(); 
       writer.println(line); 
      } 
      writer.close(); 
      sc.close(); 
     } catch (FileNotFoundException e) { 
      e.printStackTrace(); 
     } 

Antwort

0

versuchen Sie dies:

try { 
     BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); 
     System.out.println("Enter the file name to open with extension: "); 

     File file = new File(br.readLine()); 
     Scanner sc = new Scanner(file); //opens inputted file name 

     System.out.println("What is the file name you want to create? "); 
     File write = new File(br.readLine()); 

     PrintWriter writer = new PrintWriter(write); 
     while (sc.hasNextLine()) { 
      String line = sc.nextLine(); 
      writer.println(line); 
     } 
     writer.close(); 
     sc.close(); 
    } catch (FileNotFoundException e) { 
     e.printStackTrace(); 
    } catch (IOException e) { 
     e.printStackTrace(); 
    } 
Verwandte Themen