使用java实现在文件中添加字符串

使用java实现在文件中添加字符串,第1张

我在一个项目中需要使用C:\WINDOWS\system \drivers\etc这个目录下的hosts文件 并且在该文件的最后加上一个这样的字符串:     rsgl_dbserve 由于对Java的文件 *** 作不是很熟练 花了半天的功夫才找到了 具体的实现办法如下:

import java io FileOutputStreamimport java io IOExceptionimport java io OutputStreamWriter

public class FileWriterTest {

public static void main(String[] args) {  FileOutputStream stream   OutputStreamWriter writer  try {

//主要是使用了FileOutputStream的构造函数 FileOutputStream (File file boolean append) //这里参数append为true表示可以添加 详细使用参考JDK帮助文档资料   stream = new FileOutputStream( C:\\WINDOWS\\system \\drivers\\etc\\hosts true)writer =  new OutputStreamWriter(stream)  writer write(     rsgl_dbserve )  writer close()  stream close()  } catch (IOException e) {      e printStackTrace()  }   }

}

以上代码在eclipse上调试成功!

为了增加代码的重用性 可以编写一个方法如下:

lishixinzhi/Article/program/Java/hx/201311/26427

我的想法是可以用RandomAccessFile,这个类的seek方法,想在文件的哪个位置插入内容都行。所以你的第一行就不在话下了。但是,这个会覆盖你文件中插入位置后面的内容。相当于我们在输入的时候,按了键盘的insert键盘。所以,像你这种情况只能用临时文件来存储原有的内容,然后把要插入的数据写入文件,再把临时文件的内容追加到文件中。\x0d\x0avoid insert(String filename,int pos,String insertContent){//pos是插入的位置\x0d\x0aFile tmp = File.createTempFile("tmp",null)\x0d\x0atmp.deleteOnExit()\x0d\x0atry{\x0d\x0aRandomAccessFile raf = new RandomAccessFile(filename,"rw")\x0d\x0aFileOutputStream tmpOut = new FileOutputStream(tmp)\x0d\x0aFileInputStream tmpIn = new FileInputStream(tmp)\x0d\x0araf.seek(pos)//首先的话是0\x0d\x0abyte[] buf = new byte[64]\x0d\x0aint hasRead = 0\x0d\x0awhile((hasRead = raf.read(buf))>0){\x0d\x0a//把原有内容读入临时文件\x0d\x0atmpOut.write(buf,0,hasRead)\x0d\x0a\x0d\x0a}\x0d\x0araf.seek(pos)\x0d\x0araf.write(insertContent.getBytes())\x0d\x0a//追加临时文件的内容\x0d\x0awhile((hasRead = tmpIn.read(buf))>0){\x0d\x0araf.write(buf,0,hasRead)\x0d\x0a}\x0d\x0a}\x0d\x0a}


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

原文地址: http://outofmemory.cn/bake/11449245.html

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

发表评论

登录后才能评论

评论列表(0条)

保存