コマンドラインから入力を読み込んでテキストファイルに書き込む方法はありますか?Java - キーボード入力を読み込んでテキストファイルに書き込む
public class Tester
{
public static void main(String[] args)
{
//Yes, I am clueless so I have no idea what to put
}
}
コマンドラインから入力を読み込んでテキストファイルに書き込む方法はありますか?Java - キーボード入力を読み込んでテキストファイルに書き込む
public class Tester
{
public static void main(String[] args)
{
//Yes, I am clueless so I have no idea what to put
}
}
私はあなたが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.");
}
}
}
}
、これは非常に簡潔にできるよう:中
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();
}
読むユーザー入力(http://stackoverflow.com/questions/5287538/how-can-i-get-the -user-input-in-java)、ファイル(https://www.tutorialspoint.com/java/java_files_io.htm)を保存します。それは本当にそれです。 – AppleCrazy
JDKのデモとサンプル・パック(http://www.oracle.com/technetwork/java/javase/downloads/から入手可能)は、demo/jfc/Notepadディレクトリの下に、この問題の例を示しています。 – VGR
このような基本的なことについては、まず[Javaチュートリアル](http://docs.oracle.com/javase/tutorial/essential/io/)を見てください。 – MarsAtomic