2016-11-05 148 views
-5

コマンドラインから入力を読み込んでテキストファイルに書き込む方法はありますか?Java - キーボード入力を読み込んでテキストファイルに書き込む

public class Tester 
{ 
    public static void main(String[] args) 
     { 
      //Yes, I am clueless so I have no idea what to put 
     } 
} 
+0

読むユーザー入力(http://stackoverflow.com/questions/5287538/how-can-i-get-the -user-input-in-java)、ファイル(https://www.tutorialspoint.com/java/java_files_io.htm)を保存します。それは本当にそれです。 – AppleCrazy

+0

JDKのデモとサンプル・パック(http://www.oracle.com/technetwork/java/javase/downloads/から入手可能)は、demo/jfc/Notepadディレクトリの下に、この問題の例を示しています。 – VGR

+0

このような基本的なことについては、まず[Javaチュートリアル](http://docs.oracle.com/javase/tutorial/essential/io/)を見てください。 – MarsAtomic

答えて

1

私はあなたがJavaの初心者であると仮定しているので、私は自己説明的なコメントの短いコードサンプルを書いています。アプリケーションはコマンドラインで実行され、行単位で読み込まれます。行の終わりは、Enterキーを押して終了します。 「EXIT」と入力すると、アプリケーションは終了します。書き込まれるテキストファイルはC:\Folder\Text.txtにあります。

これは非常に基本的な例ですので、必要に応じて拡張してください。プラットフォームの独立性を高めるために、\\スラッシュをFile.separatorで置き換えることができます。 finallyブロックへの注意:Javaの新しいバージョン(> = 7)では、try-withの構文を使用して定型コードを大幅に節約できます。興味があれば、hereの詳細をお読みください。

チュートリアルhereで基本的なI/Oメカニズムについて知ることができます。 Javaの8で

import java.io.FileWriter; 
import java.io.IOException; 
import java.util.Scanner; 

public class Tester { 

    public static void main(String[] args) { 

     // The reader and writer objects must be declared BEFORE 
     // the try block, otherwise they are not 'visible' to close 
     // in the finally block 
     Scanner reader = null; 
     FileWriter writer = null; 
     String inputText; 

     try { 

      // Reader and writer are instantiated within the try block, 
      // because they can already throw an IOException 
      reader = new Scanner(System.in); 

      // Do not forget, '\\' is the escape sequence for a backslash 
      writer = new FileWriter("C:\\Folder\\Text.txt"); 

      // We read line by line, a line ends with a newline character 
      // (in Java a '\n') and then we write it into the file 
      while (true) { 

       inputText = reader.nextLine(); 

       // If you type 'EXIT', the application quits 
       if (inputText.equals("EXIT")) { 
        break; 
       } 

       writer.write(inputText); 

       // Add the newline character, because it is cut off by 
       // the reader, when reading a whole line 
       writer.write("\n"); 

      } 

     } catch (IOException e) { 

      // This exception may occur while reading or writing a line 
      System.out.println("A fatal exception occurred!"); 

     } finally { 

      // The finally branch is ALWAYS executed after the try 
      // or potential catch block execution 

      if (reader != null) { 
       reader.close(); 
      } 

      try { 

       if (writer != null) { 
        writer.close(); 
       } 

      } catch (IOException e) { 

       // This second catch block is a clumsy notation we need in Java, 
       // because the 'close()' call can itself throw an IOException. 
       System.out.println("Closing was not successful."); 

      } 

     } 

    } 

} 
0

、これは非常に簡潔にできるよう:中

public static void main(String[] args) { 
    BufferedReader in = new BufferedReader(new InputStreamReader(System.in)); 
    Stream<String> stream = in.lines().limit(20); // 20 is number of lines you want to read 

    try (PrintWriter pw = new PrintWriter("FileName.txt", "UTF-8")) { 
     stream.map(s -> s) 
       .forEachOrdered(pw::println); 
    } 
    catch (UnsupportedEncodingException | FileNotFoundException e) { 
     e.printStackTrace(); 
    } 
関連する問題