java io 简单实现对数据的增删改查

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java io 简单实现对数据的增删改查相关的知识,希望对你有一定的参考价值。

大概就是模仿数据库的形式,但是简单。就是想单纯用java io 来实现对数据(可以就是一条字符串)的增加 删除 查找 插入。不知道怎么写,求教,有参考资料也行,多谢大家了
怎么能保证存储大量文件呢,10g左右,这时候的查找效率,这是个研究希望能帮忙。二次哈希?

// 以下是个简单例子 自己可以扩展分别可以作为一方法
File file = new File("D:/e.txt");
try
if (!file.exists())
file.createNewFile();

// 添加
FileOutputStream fileOutputStream = new FileOutputStream(file, true);
fileOutputStream.write("[id=1,userName=管理员,passWord=admin]\r\n"
.getBytes("UTF-8"));// 格式自由定义
fileOutputStream.close();
// 修改 id=1
int id = 1;
String userName = "周述兵";
String passWord = "zsb";
// 用输入流读取数据 也就是查询
FileInputStream fileInputStream = new FileInputStream(file);
byte[] bytes = new byte[fileInputStream.available()];
fileInputStream.read(bytes);
String[] datas = new String(bytes, "UTF-8").split("\r\n");// 根据每天数据间的区别来划分为数组
for (int i = 0; i < datas.length; i++)
System.out.println(datas[i]);
if (datas[i].indexOf("[id=" + id) >= 0)
datas[i] = "[id=" + id + ",userName=" + userName
+ ",passWord=" + passWord + "]";


fileInputStream.close();
// 用输出流重新写入数据
fileOutputStream = new FileOutputStream(file, false);
String writeData = "";
for (String data : datas)
writeData += data + "\r\n";

fileOutputStream.write(writeData.getBytes("UTF-8"));
fileOutputStream.close();
// 删除和修改有所略同
catch (Exception e)
e.printStackTrace();


//如果考虑效率的话 我建议不要用 io 因为这最消耗性能了 你可以考虑存入多个文件 分类存入 分类查找 速度稍微好点
最好还是用数据库
参考技术A 既然是用文件模拟数据库还要高效率,不就是让你直接实现一个nosql服务了,推荐可以用一个map reduce的方式(google用的分布式nosql缓存)
举例:
一个超大文件 每行都是一个数据,遍历文件
如果发现新的行数map.put("每行数据",1) 1代表这个数据出现了一次
;如果已经存储map.put("每行数据",map.get("每行数据")+1);
这样可以通过map的key来查询,删除,插入新的数据,
如果要你统计文件出现最多次数的行数直接比较最大的map value就可以知道是哪行,基本上可以实现一个简单的nosql数据库
参考技术B 用序列化文件怎么样?可以自己定义个数据的格式类,再定义个保存这个数据的集合,然后把这个集合序列化。

public class Data implements Serializable
//数据的格式


public class DataCollection<E> implements Serializable
private HashSet<E> set = new HashSet<E>();
//操作数据的方法放在这里,也就是增删改查


public class OperaFile
public static void save(String path, Serializable data)
//将文件序列化
FileOutputStream file = new FileOutputStream(path);
ObjectOutputStream out = new ObjectOutputStream(file);
out.writeObject(data);

public Object void open(String path)
//同理



不过没试过10G的文件要序列化多少,LZ可以试下,好让我参考参考,呵呵本回答被提问者采纳
参考技术C File f=new File(“11.txt”);//创建一个名为11.txt的文件对象
f.CreateNewFile(); //真正地创建文件
f.CreateMkdir()://创建目录
f.delete();//删除文件
f.deleteOnExit();//在进程退出的时候删除文件,这样的操作通常用在临时文件的删除。

然后可以用字节流进行读取。
参考技术D Java IO输入信息到文件中,再从文件中取出,就可以增。删。改。查了

在实际的java开发项目中想要实现简单的增删改查具体需要掌握哪些技能

对于一个自学java的小白来说,麻烦帮我梳理一下所应该掌握java开发的技能,比如数据库的操作,io映射,多线程,框架什么的,越具体越好

最简单的,整合一下springboot和mybatis,配置一下mysql数据库,就可以完成基本的功能了,网上搜索一下教程就可以。io,多线程这些前期基本用不到,不掌握也能开发 参考技术A   1.多线程,Socket,I/O
  2.JSP、EL、JSTL,AJAX
  3.JavaScript,jQuery
  4.JSON,XML
  5.EJB(可忽略)
  6.各种框架
参考技术B 实际开发,数据库的操作是有的,多线程这东西一般框架都是写好的,不会让你从底层自己写。框架也是搭建好的,直接按照现有框架规则写就好了 参考技术C 现在比较流行用SpringBoot+MyBatis+Redis!在java基础熟练的情况下,熟练运用这些框架 参考技术D 真正在公司里干的也就是复制粘贴了!跪求采纳

以上是关于java io 简单实现对数据的增删改查的主要内容,如果未能解决你的问题,请参考以下文章

java web 就是对数据库的增删改查么

vue-实现对数组的增删改查

JAVA增删改查

java数据库中这样实现增删改查

java io流对文件的增删改查

java struts 实现简单的增删改查功能