使用java,从控制台输入多行文本,直到输入q或Q时退出,存到文件里,然后读回文本文件
时间: 2024-09-24 09:14:29 浏览: 41
从控制台输入一串字符串,筛选整数输出。
在Java中,你可以使用`BufferedReader`从控制台逐行读取用户输入,直到遇到特定的退出字符(如`'q'`或`'Q'`),并将每一行存储到文件中。下面是一个简单的示例程序:
```java
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
public class ConsoleToFile {
public static void main(String[] args) {
BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
BufferedWriter writer = null;
try {
System.out.println("请输入文字,输入 'q' 或 'Q' 退出:");
// 打开文件准备写入
writer = new BufferedWriter(new FileWriter("input.txt"));
String line;
while ((line = reader.readLine()) != null && !line.equalsIgnoreCase("q") && !line.equalsIgnoreCase("Q")) {
writer.write(line + "\n"); // 每一行后面加上换行符
}
writer.close(); // 写入完成后关闭writer
System.out.println("已成功保存到文件 input.txt");
} catch (IOException e) {
e.printStackTrace();
} finally {
if (writer != null) {
try {
writer.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
// 读回文件内容并打印出来,这里假设已经完成写入操作
readAndPrintFile("input.txt");
}
private static void readAndPrintFile(String fileName) {
FileReader fileReader = null;
BufferedReader fileReaderBuffered = null;
try {
fileReader = new FileReader(fileName);
fileReaderBuffered = new BufferedReader(fileReader);
String line;
while ((line = fileReaderBuffered.readLine()) != null) {
System.out.println(line); // 输出文件内容
}
} catch (IOException e) {
e.printStackTrace();
} finally {
if (fileReaderBuffered != null) {
try {
fileReaderBuffered.close();
} catch (IOException e) {
e.printStackTrace();
}
}
if (fileReader != null) {
try {
fileReader.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
}
```
在这个例子中,我们首先创建一个`BufferedReader`从标准输入读取,然后通过`BufferedWriter`将数据写入文件。当用户输入`'q'`或`'Q'`时,程序会跳出循环并关闭文件。接着,我们在`readAndPrintFile`函数中打开相同的文件,读取其内容并显示在控制台上。
阅读全文