骤跌 2023-06-02 14:07 采纳率: 75%
浏览 52
已结题

如何用IO流对存入的数据修改和删除

我用字符流,向一个TXT文本存入了集合里面的数据,怎么实现对文本中数据的增删减改

  • 写回答

4条回答 默认 最新

  • 阿正很牛 2023-06-02 14:15
    关注

    使用字符流读取文本文件中的数据,将其转换为集合对象,然后对集合进行增删减改操作,最后再将修改后的集合写回到文本文件中即可。

    具体实现步骤如下:

    1. 使用字符流读取文本文件中的数据,将其转换为集合对象。可以使用BufferedReader类读取文本文件中的数据,并使用Gson库将读取到的JSON字符串转换为集合对象。
    BufferedReader reader = new BufferedReader(new FileReader("data.txt"));
    List<Data> dataList = new Gson().fromJson(reader, new TypeToken<List<Data>>(){}.getType());
    
    1. 对集合进行增删减改操作。根据需求对集合进行增删减改操作,例如:
    // 添加数据
    dataList.add(new Data("new data"));
    
    // 删除数据
    dataList.remove(0);
    
    // 修改数据
    dataList.get(0).setName("modified data");
    
    1. 将修改后的集合写回到文本文件中。可以使用BufferedWriter类将集合对象转换为JSON字符串,并写入到文本文件中。
    BufferedWriter writer = new BufferedWriter(new FileWriter("data.txt"));
    writer.write(new Gson().toJson(dataList));
    writer.close();
    

    完整代码示例:

    import com.google.gson.Gson;
    import com.google.gson.reflect.TypeToken;
    
    import java.io.*;
    import java.util.List;
    
    public class Main {
        public static void main(String[] args) throws IOException {
            // 读取数据
            BufferedReader reader = new BufferedReader(new FileReader("data.txt"));
            List<Data> dataList = new Gson().fromJson(reader, new TypeToken<List<Data>>(){}.getType());
            reader.close();
    
            // 对数据进行增删减改操作
            dataList.add(new Data("new data"));
            dataList.remove(0);
            dataList.get(0).setName("modified data");
    
            // 写入数据
            BufferedWriter writer = new BufferedWriter(new FileWriter("data.txt"));
            writer.write(new Gson().toJson(dataList));
            writer.close();
        }
    }
    
    class Data {
        private String name;
    
        public Data(String name) {
            this.name = name;
        }
    
        public String getName() {
            return name;
        }
    
        public void setName(String name) {
            this.name = name;
        }
    }
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(3条)

报告相同问题?

问题事件

  • 系统已结题 6月13日
  • 已采纳回答 6月5日
  • 创建了问题 6月2日

悬赏问题

  • ¥15 如何构建全国统一的物流管理平台?
  • ¥100 ijkplayer使用AndroidStudio/CMake编译,如何支持 rtsp 直播流?
  • ¥20 和学习数据的传参方式,选择正确的传参方式有关
  • ¥15 这是网络安全里面的poem code
  • ¥15 用js遍历数据并对非空元素添加css样式
  • ¥15 使用autodl云训练,希望有直接运行的代码(关键词-数据集)
  • ¥50 python写segy数据出错
  • ¥20 关于线性结构的问题:希望能从头到尾完整地帮我改一下,困扰我很久了
  • ¥30 3D多模态医疗数据集-视觉问答
  • ¥20 设计一个二极管稳压值检测电路