java:从控制台循环接收用户录入3个学生信息,每个学生学习信息,存到一个Student对象,将3个学生对象list<Student>, 将学生信息保存到D盘下面的student.txt文件中,一个学生信息占据一行数据。 当用户输入时停止输入
时间: 2024-10-22 08:29:17 浏览: 52
在Java中,你可以通过Scanner类从控制台接收用户的输入,创建Student对象,并使用ArrayList存储这些对象。然后,可以使用FileWriter和BufferedWriter将学生信息写入到指定的文本文件中。以下是步骤的示例:
1. 首先,定义一个Student类,包含姓名和学习信息属性:
```java
public class Student {
private String name;
private String studyInfo;
// 构造函数、getters和setters...
}
```
2. 创建一个主方法,用于循环获取用户输入并操作文件:
```java
import java.io.BufferedWriter;
import java.io.FileWriter;
import java.io.IOException;
import java.util.ArrayList;
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
ArrayList<Student> students = new ArrayList<>();
Scanner scanner = new Scanner(System.in);
BufferedWriter writer = null;
try {
System.out.println("请输入学生信息(格式:姓名 学习信息),输入'q'退出:");
while (true) {
String input = scanner.nextLine();
if (input.equalsIgnoreCase("q")) break;
String[] parts = input.split(" ");
if (parts.length != 2) continue; // 检查输入是否有效
Student student = new Student();
student.setName(parts[0]);
student.setStudyInfo(parts[1]);
students.add(student);
// 写入文件
writer = new BufferedWriter(new FileWriter("D:/student.txt", true)); // "true"表示追加模式
writer.write(input + "\n"); // 每行一个学生信息
}
// 关闭writer
writer.close();
System.out.println("学生信息已成功保存到student.txt文件中。");
} catch (IOException e) {
e.printStackTrace();
} finally {
// 确保关闭文件流
if (writer != null) try { writer.close(); } catch (IOException e) {}
scanner.close();
}
}
}
```
在这个例子中,用户每输入一次学生的姓名和学习信息,就会创建一个新的Student对象并添加到列表中。当用户输入 'q' 时,程序会跳出循环并关闭文件。
阅读全文