首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > JAVA > J2SE开发 >

Java IO源修改数据

2012-09-24 
Java IO流修改数据怎么通过javaIO流来修改数据。本地有个文件asd.txt.其内容是djak01 23302 34503 889现在

Java IO流修改数据
怎么通过javaIO流来修改数据。
本地有个文件asd.txt.其内容是
djak
01 233
02 345
03 889
现在我想修改其中02 345 变为01 345 怎么修改。
求助~~~~~~~~~~~~~~~~~~~


[解决办法]
没那么复杂吧。。。

修改String都不会么?

逻辑上这么做:
1、Reader方式打开"asd.txt"; 比如:Scanner sc = new Scanner(new File("/xxoo/asd.txt"));
2、Writer方式打开"asd.txt.tmp";
3、循环逐行读取 "asd.txt"; 比如:
while(sc.hasNextLine()) {
String line = sc.nextLine();
4、检查line是否是你要修改的哪行,如果是的就修改它,比如:
line = line.replaceAll("02", "01");
5、将line写入"asd.txt.tmp"
6、循环结束后,关闭这两个文件;
7、删除"asd.txt";
8、将"asd.txt.tmp"重命名为"asd.txt";
[解决办法]
楼主试试这个,在工程的根目录下要有asd.txt文件,我这里运行OK

Java code
import java.io.*;/** * Created by IntelliJ IDEA. * User: gaoyong * Date: 2012-8-9 * Time: 15:31:42 * To change this template use File | Settings | File Templates. */public class ChangeText {    public static void main(String[] args) throws Exception {        FileReader reader=new FileReader("asd.txt");        BufferedReader br=new BufferedReader(reader);        FileWriter fw=new FileWriter("asd.txt.tmp");        String s="";        while((s=br.readLine())!=null){            System.out.println(""+s);            //下面的if语句 写自己的替换逻辑            if(s.equals("02 345")){               s="01 345";            }            fw.write(s);            fw.write("\r\n");            fw.flush();        }        br.close();        fw.close();        File renameFile=new File("asd.txt");        renameFile.delete(); //删掉原来的文件        File file=new File("asd.txt.tmp");        file.renameTo(renameFile);  //   重命名文件    }} 

热点排行