public void saveFile() { try (ObjectOutputStream oos = new ObjectOutputStream( new FileOutputStream("C:\Users\86150\Desktop\studentr.txt"))) { if (students != null) { oos.writeObject(students); } if (attendances != null) { oos.writeObject(attendances); } System.out.println("保存成功!"); } catch (IOException e) { System.out.println("保存失败:" + e.getMessage()); } }
gpt
造成乱码的原因可能是编码方式的问题。当我们使用 ObjectOutputStream 写入对象时,它会将对象以二进制式持久化到文件中。这可能导致文件内容无法直接进行人类可读的解析,从而看起来像乱码。
如果您希望保存的文件内容能够使用文本编辑器打开并进行查看,可以考虑使用其他数据序列化方式,例如 JSON 或 XML 格式。这些格式可以更好地表示结构化的,并且可以使用常规的文本编辑器进行查看和。
以下是一个使用 JSON 格式保存的示例:
import com.google.gson.Gson; // 需要导入 Gson 库
public void saveFile() {
try (FileWriter writer = new FileWriter("C:\\Users\\86150\\Desktop\\student.json")) {
Gson gson = new Gson();
if (students != null) {
String studentsJson = gson.toJson(students);
writer.writeudentsJson);
}
if (attendances != null) {
String attendancesJson = gson.toJson(attendances);
writer.write(attendancesJson);
}
System.out.println("保存成功!");
} catch (IOException e) {
System.out.println("保存失败:" + e.getMessage());
}
}
在这个示例中,我们使用了 Google 的 Gson 库来将对象换为 JSON 字符串并保存到文件中。首先,我们创建了一个 Gson 对象。然后,使用 toJson() 方法将 students 和 attendances 对象分别转换为 JSON串,并将这些字符串写入文件中。
请确保已将 Gson 库添加到项目的依赖中,可以在代码中导入 com.google.gson.Gson 类。
博主本人现居福建,在民办专科院校读书,是一名初入代码界的小白菜,有幸拿过一次国家奖学金,有物联网单片机开发的基础和软件开发的基础。
物联网学习经历:这块学的是51单片机,没有经历专业的学习,只是高中时期对机器人这块比较感兴趣,买书自学,做过智能小车、智能手环、心形流水灯等一些有趣的东西。
软件开发专业学习经历:
设置编码格式,给你个案例代码,自己改改,
import java.io.*;
public class ReadTextFile {
public static void main(String[] args) throws Exception {
FileInputStream fis = new FileInputStream("file.txt");
InputStreamReader isr = new InputStreamReader(fis, "UTF-8");
BufferedReader br = new BufferedReader(isr);
String line;
while ((line = br.readLine()) != null) {
System.out.println(line);
}
br.close();
isr.close();
fis.close();
}
}
其中Utf8要是还是乱码就改为GB2312