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

java io 简单实现对数据的增删改查,第1张

// 以下是个简单例子 自己可以扩展分别可以作为一方法

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 = 0i <datas.lengthi++) {

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 因为这最消耗性能了 你可以考虑存入多个文件 分类存入 分类查找 速度稍微好点

最好还是用数据库

可以通过BufferedReader 流的形式进行流读取,之后通过readLine方法获取到的内容,之后通过if判断来实现在某些特定位置的查找、增加、删除、修改 *** 作。

举例:

BufferedReader bre = null

OutputStreamWriter pw = null//定义一个流

try {

String file = "D:/test/test.txt"

bre = new BufferedReader(new FileReader(file))//此时获取到的bre就是整个文件的缓存流

pw = new OutputStreamWriter(new FileOutputStream(“D:/test.txt”),"GBK")//确认流的输出文件和编码格式,此过程创建了“test.txt”实例

while ((str = bre.readLine())!= null) // 判断最后一行不存在,为空结束循环

{

if(str.indexOf("排除")<0){//判断是否需要舍弃

pw.write(str)//将要写入文件的内容,可以多次write

}

}

bre.close()//关闭流

pw.close()//关闭流

解释:以上方法是实现的删除,if中的条件改变下,即可实现其余的功能。

备注:文件流用完之后必须及时通过close方法关闭,否则会一直处于打开状态,直至程序停止,增加系统负担。

通过io流的flush函数进行IO缓冲区清空

举例:

FileWriter fw = new FileWriter("ACM.txt")//创建IO输出流

//创建一个字符写入流的缓冲区对象,并和指定要被缓冲的流对象相关联 

BufferedWriter bw = new BufferedWriter(fw)

//使用缓冲去的方法,将数据写入到缓冲区中

bw.write("ACM。。。。")

bw.newLine()//实际上 System.getproperty("line.separator")

bw.write("acm")

bw.newLine()

bw.flush()//通过flush方法,清空缓冲区


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/6932531.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-03-30
下一篇 2023-03-30

发表评论

登录后才能评论

评论列表(0条)

保存