4. 在磁盘中创建一个文本文件,写入如下内容,然后通过Java的IO流读取每一行的数据,然后把每一行的数据解析后存储到一个学生对象Student中,最后所有数据存入List集合中。(
时间: 2023-08-31 22:41:58 浏览: 106
### 回答1:
如果你想在磁盘中创建一个文本文件并写入指定的内容,可以使用 Java 的 FileOutputStream 和 OutputStreamWriter 类。 首先,你需要创建一个 FileOutputStream 对象,指定文件路径和文件名。 然后,你可以使用 OutputStreamWriter 对象来包装 FileOutputStream 对象,并使用 OutputStreamWriter 的 write() 方法来写入字符串。 最后,你需要调用 OutputStreamWriter 的 close() 方法来关闭输出流。
下面是一个示例代码:
```
import java.io.FileOutputStream;
import java.io.OutputStreamWriter;
public class WriteToFile {
public static void main(String[] args) {
try {
// 创建 FileOutputStream 对象
FileOutputStream fos = new FileOutputStream("c:/test/test.txt");
// 创建 OutputStreamWriter 对象
OutputStreamWriter osw = new OutputStreamWriter(fos);
// 写入字符串
osw.write("这是要写入的字符串");
// 关闭输出流
osw.close();
} catch (Exception e) {
e.printStackTrace();
}
}
}
```
如果你想通过 Java 的 IO 流读取文本文件中的每一行数据,可以使用 BufferedReader 类。 首先,你需要创建一个 FileReader 对象,指定文件路径和文件名。 然后,你可以使用 BufferedReader 对象来包装 FileReader 对象,并使用 BufferedReader 的 readLine() 方法来读取文件中的每一行数据。 最后,你需要调用 BufferedReader 的 close() 方法来关闭输入流。
下面是一个示例代
### 回答2:
在磁盘中创建一个文本文件,可以使用FileWriter类或者BufferedWriter类来实现。使用FileWriter类的基本步骤如下:
1. 创建一个FileWriter对象,指定要创建的文件路径和文件名。
```java
FileWriter fw = new FileWriter("C:\\test\\student.txt");
```
2. 使用write()方法将要写入的内容写入到文件中。
```java
fw.write("张三,男,18\n");
fw.write("李四,女,20\n");
fw.write("王五,男,19\n");
```
3. 关闭文件流。
```java
fw.close();
```
通过Java的IO流读取每一行的数据,可以使用BufferedReader类。其基本步骤如下:
1. 创建一个BufferedReader对象,指定要读取的文件路径和文件名。
```java
BufferedReader br = new BufferedReader(new FileReader("C:\\test\\student.txt"));
```
2. 使用readLine()方法读取文件的一行内容。
```java
String line;
while ((line = br.readLine()) != null) {
// 对读取的每一行数据进行解析
}
```
3. 关闭文件流。
```java
br.close();
```
将每一行的数据解析后存储到一个学生对象Student中,可以通过split()方法将一行数据按照指定的分隔符进行拆分,然后将拆分后的数据存储到Student对象中。
```java
String[] data = line.split(",");
String name = data[0];
String gender = data[1];
int age = Integer.parseInt(data[2]);
Student student = new Student(name, gender, age);
```
最后,将所有数据存入List集合中,可以使用ArrayList类。
```java
List<Student> studentList = new ArrayList<>();
studentList.add(student);
```
完整代码如下:
```java
import java.io.BufferedReader;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;
public class Main {
public static void main(String[] args) {
try {
// 创建一个文本文件并写入数据
FileWriter fw = new FileWriter("C:\\test\\student.txt");
fw.write("张三,男,18\n");
fw.write("李四,女,20\n");
fw.write("王五,男,19\n");
fw.close();
// 读取数据并解析存入List集合中
BufferedReader br = new BufferedReader(new FileReader("C:\\test\\student.txt"));
String line;
List<Student> studentList = new ArrayList<>();
while ((line = br.readLine()) != null) {
String[] data = line.split(",");
String name = data[0];
String gender = data[1];
int age = Integer.parseInt(data[2]);
Student student = new Student(name, gender, age);
studentList.add(student);
}
br.close();
// 输出存储的学生对象
for (Student student : studentList) {
System.out.println(student);
}
} catch (IOException e) {
e.printStackTrace();
}
}
}
class Student {
private String name;
private String gender;
private int age;
public Student(String name, String gender, int age) {
this.name = name;
this.gender = gender;
this.age = age;
}
@Override
public String toString() {
return "Name: " + name + " Gender: " + gender + " Age: " + age;
}
}
```
### 回答3:
解决这个问题的步骤如下:
1. 首先,我们需要在磁盘中创建一个文本文件。可以使用Java的File类来完成这个任务。例如,我们可以通过以下代码创建一个名为"student.txt"的文本文件:
```
File file = new File("student.txt");
if(!file.exists()){
file.createNewFile();
}
```
2. 接下来,要向文件中写入内容。可以使用Java的IO流中的FileWriter和BufferedWriter类来实现。以下代码演示了如何向文件中写入内容:
```
FileWriter fileWriter = new FileWriter(file);
BufferedWriter bufferedWriter = new BufferedWriter(fileWriter);
bufferedWriter.write("张三,18,男");
bufferedWriter.newLine();
bufferedWriter.write("李四,19,女");
bufferedWriter.newLine();
bufferedWriter.write("王五,20,男");
bufferedWriter.close();
fileWriter.close();
```
3. 然后,我们可以使用Java的IO流中的FileReader和BufferedReader类来读取文件的每一行数据。以下代码演示了如何读取文件的每一行数据并解析每一行的数据,并将结果存储在一个学生对象Student中:
```
ArrayList<Student> studentList = new ArrayList<>();
FileReader fileReader = new FileReader(file);
BufferedReader bufferedReader = new BufferedReader(fileReader);
String line;
while((line = bufferedReader.readLine()) != null){
String[] data = line.split(",");
String name = data[0];
int age = Integer.parseInt(data[1]);
String gender = data[2];
Student student = new Student(name, age, gender);
studentList.add(student);
}
bufferedReader.close();
fileReader.close();
```
4. 最后,我们将存储学生对象的List集合studentList返回,以供后续使用。
以上就是使用Java的IO流读取文本文件中每一行数据,并将数据解析后存储到学生对象Student中,最后存入List集合中的方法。
阅读全文