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

如何用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日