猿问

让文件支持类似事务的功能

在多个用户操作同1个文件的情况下,可能会造成数据的丢失。显然想实现类似数据库事务的功能,如果用户1的操作成功,则将其到文件中,而如果用户1的操作成功,则进行回滚不写入到文件中。

aluckdog
浏览 584回答 7
7回答

小怪兽爱吃肉

为什么不直接使用数据库呢,如果你在文件系统上加上事务的功能,相当于你实现了一个乞丐版的数据库。推荐使用SQlLite嵌入式本地文件数据库,非常轻量级,单文件,完整支持SQL标准

一只斗牛犬

用类似git的版本控制可能会好些~ 去了解一下github的用法

Smart猫小萌

加锁:类似于 数据库加锁的原理:用memcache 或者 redis 加个内存锁 每次去操作文件的时候 去看看锁有没有被释放,如有有锁 说明已经有用户在操作了操作完毕 释放锁

慕桂英546537

用锁,悲观锁 java

素胚勾勒不出你

加锁 或者用队列实现

慕森卡

用fileLock会好一点,读锁,写锁全有 `FileOutputStream fo = new FileOutputStream("123.txt"); FileLock lock = fo.getChannel().lock();//写锁 互斥 Writer writer = new OutputStreamWriter(fo); writer.write("test"); lock.release(); FileInputStream fi = new FileInputStream("123.txt"); lock = fi.getChannel().lock(0, Long.MAX_VALUE, true);//文档从位置0,锁到Long.MAX_VALUE,共享锁,排斥写 BufferedReader reader = new BufferedReader(new InputStreamReader(fi)); reader.readLine(); lock.release(); fi.close();` try catch自己补全吧
随时随地看视频慕课网APP

相关分类

Java
我要回答