Java对文件和文件内容进行修改
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
开发工具与关键技术:My Eclipse 10 ,Java
作者:陈显其
撰写时间:2019/5/7
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Java修改文件需要用到IO流,首先用把要修改的文件通过File类给弄进来,文件的新建、删除、目录都可以用File类进行操作,对目录也能操作,但不可以对文件的内容进行访问和操作,想操作文件的内容则需要使用输入/输出流。
用File类把文件获取到之后,File类里带着方法里有可以新建、删除、重命名文件的方法,对文件重命名时,如果对文件的路径进行修改,那么文件的位置就会发生变化,重命名某种意义上等同于移动,如下图中,在路径中加上一段
文件就从外面到了新建中这个文件夹里了
修改文件的内容用OutputStream和Writer作为基类,获取到文件,然后用实例的文件名点Writer(要加进去的内容)的方法添加文件内容,记得先把流里的数据全部推出去,然后才能关闭流
但是,这样会把文件里的原数据替换掉,也就是说之前的数据都没了,文件里保存的是现在Java程序刚添加的东西,适用于复制文件或者给新建的文件添加数据的时候用,如果是想在源数据基础上添加数据,建议使用RandomAccessFile类,如果是想加在最后面的话,需要吧指针seek调到最后,不然会默认添加到最前面去,
这样就把数据加进去了,但是,在想在中间的某处添加数据的话这样是不行的,因为这样添加的话会把后面的数据给覆盖掉,想在中间添加东西,要先把会被覆盖掉的数据给读取出来存到临时数组中,如下面的那样, 把插入点后面的数据存入数组里
然后把指针重新调到插入点,添加想添加插入的数据,然后把原本被放到别的地方的源文件的数据读取出来,再给它重新加上,这样就在中间给添加新的数据进去了
修改数据则是把要修改的那一段数据找出来,把想要数据给要修改的数据给覆盖掉,删除也可以这么能做,把要删除的那一段数据后面的数据拿出来,把指针调到要删除的数据前,然后直接给覆盖掉,这样可以当做删除来用