使用Java语言实现以下要求。编写一个程序HandInput.java,接受用户的键盘输入,存入指定的文件。用户的输 入以行为单位,当用户输入end时,程序结束。如果指定的文件已经存在,程 序提示用户,并结束程序。
时间: 2023-09-25 19:06:37 浏览: 180
### 回答1:
以下是实现要求的Java代码:
```java
import java.io.*;
public class HandInput {
public static void main(String[] args) {
BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
System.out.println("请输入文件名:");
String fileName = null;
try {
fileName = reader.readLine();
} catch (IOException e) {
System.out.println("读取文件名失败!");
e.printStackTrace();
return;
}
File file = new File(fileName);
if (file.exists()) {
System.out.println("指定的文件已存在,程序结束。");
return;
}
try {
FileWriter writer = new FileWriter(file);
System.out.println("请输入内容:");
String line = null;
while ((line = reader.readLine()) != null) {
if (line.equals("end")) {
break;
}
writer.write(line + "\n");
}
writer.close();
System.out.println("数据已保存到文件 " + fileName);
} catch (IOException e) {
System.out.println("保存数据到文件失败!");
e.printStackTrace();
}
}
}
```
程序会先提示用户输入文件名,然后检查文件是否已经存在。如果文件已经存在,则提示用户并结束程序;否则,程序会提示用户输入内容,并将输入的内容逐行写入文件,直到用户输入了"end"为止。最后,程序会输出保存结果。
### 回答2:
使用Java语言实现上述要求,可以按照以下步骤进行编写:
1. 导入需要的Java IO相关的包,例如:java.io.BufferedReader、java.io.BufferedWriter、java.io.FileWriter等。
2. 在HandInput类中,创建一个静态方法main,作为程序入口。
3. 在main方法中,首先判断指定的文件是否已经存在,可以使用java.io.File类的exists()方法进行判断。如果存在,则提示用户文件已存在并结束程序。
4. 如果文件不存在,则使用java.io.FileWriter类创建一个新的文件写入器,并传入指定的文件路径和文件名。
5. 利用java.io.BufferedReader类和System.in创建一个输入流读取器,用于接收用户的键盘输入。
6. 创建一个无限循环,循环中首先读取一行用户输入,并判断是否为"end",如果是则结束循环。
7. 如果不是"end",则将用户输入的内容写入文件。可以使用java.io.BufferedWriter类的write()方法写入内容,并在每行末尾加上换行符"\n"。
8. 循环结束后,关闭文件写入器和输入流读取器,释放资源。
以下是一个示例代码:
```java
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.FileWriter;
import java.io.InputStreamReader;
import java.io.IOException;
public class HandInput {
public static void main(String[] args) {
String filePath = "指定的文件路径和文件名.txt";
// 检查文件是否存在
if (new java.io.File(filePath).exists()) {
System.out.println("指定的文件已存在!");
return;
}
// 创建文件写入器
try (BufferedWriter writer = new BufferedWriter(new FileWriter(filePath))) {
// 创建输入流读取器
BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
// 读取用户输入并写入文件,直到输入为"end"
while (true) {
String input = reader.readLine();
if ("end".equals(input)) {
break;
}
writer.write(input);
writer.newLine();
}
// 关闭输入流读取器
reader.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
```
请注意,以上示例代码仅供参考,具体实现方式可以根据实际需求进行调整。在实际运行程序时,需要将"指定的文件路径和文件名.txt"替换为实际需要存储用户输入的文件路径和文件名。
### 回答3:
以下是使用Java语言实现的程序HandInput.java:
```java
import java.io.FileWriter;
import java.io.IOException;
import java.util.Scanner;
import java.io.File;
public class HandInput {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.print("请输入要存入的文件名:");
String fileName = scanner.next();
File file = new File(fileName);
if (file.exists()) {
System.out.println("指定的文件已经存在,请重新运行程序并输入一个不存在的文件名。");
System.exit(0);
}
try (FileWriter writer = new FileWriter(file)) {
System.out.println("请输入内容,以行为单位。当输入\"end\"时,程序结束。");
String inputLine;
while (!(inputLine = scanner.nextLine()).equals("end")) {
writer.write(inputLine);
writer.write(System.lineSeparator());
}
System.out.println("程序已结束,所有输入内容已成功保存到文件中。");
} catch (IOException e) {
System.out.println("保存文件时出现错误,请重新运行程序。");
}
scanner.close();
}
}
```
这个程序首先要求用户输入要存入的文件名,然后检查指定的文件是否已经存在。如果文件已经存在,程序会提示用户并结束。如果文件不存在,程序会接受用户的键盘输入,以行为单位,将输入内容存入指定的文件中,直到用户输入"end"为止。程序结束后,会输出提示信息并关闭文件和输入流。
请注意,这个程序假设用户输入的文件名不包含路径,文件会被保存在程序运行的当前路径下。如果需要指定其他路径,请修改程序中的路径相关代码。
阅读全文