写入一直乱码,人麻了

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 类。

  • 这个问题的回答你可以参考下: https://ask.csdn.net/questions/7736040
  • 这篇博客你也可以参考下:发布内容总结,个人参考
  • 除此之外, 这篇博客: 第一篇博客,与您共勉中的 个人介绍 部分也许能够解决你的问题, 你可以仔细阅读以下内容或跳转源博客中阅读:
  • 博主本人现居福建,在民办专科院校读书,是一名初入代码界的小白菜,有幸拿过一次国家奖学金,有物联网单片机开发的基础和软件开发的基础。

    物联网学习经历:这块学的是51单片机,没有经历专业的学习,只是高中时期对机器人这块比较感兴趣,买书自学,做过智能小车、智能手环、心形流水灯等一些有趣的东西。
    软件开发专业学习经历:

    1. 前端方向:HTML5+CSS3+JS以及Bootstrap(响应式网站开发),目前在学Vue。
    2. 后端方面:简单的PHP后端编程,目前在学Java的后端开发。
    3. 数据库: 学习过SqlServer2008和MySQL基础编程。
    4. 其他方面:学习过Python,微信小程序,PS,计算机网络基础,HarmonyOS移动应用开发。
  • 您还可以看一下 allen,li老师的关键点检测实战:人体关键点检测课程中的 模型训练小节, 巩固相关知识点

设置编码格式,给你个案例代码,自己改改,


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