| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 735 人关注过本帖
标题:怎么样修改一个文件已经有了的记录
只看楼主 加入收藏
davidloves
Rank: 1
等 级:新手上路
帖 子:137
专家分:0
注 册:2007-1-6
收藏
 问题点数:0 回复次数:4 
怎么样修改一个文件已经有了的记录
比如说我的一个文件里面有下列信息

...
David, JAVA, 90
David, C, 90
TOM, C, 80
TOM, JAVA, 70
...

现在我想把    David, JAVA, 90 这条记录修改为    David, JAVA, 99
要怎么做呢

看了半天书,没有头绪
搜索更多相关主题的帖子: 文件 记录 
2007-12-27 09:04
davidloves
Rank: 1
等 级:新手上路
帖 子:137
专家分:0
注 册:2007-1-6
收藏
得分:0 
自己顶一个

2007-12-27 13:07
dawn
Rank: 2
等 级:论坛游民
帖 子:16
专家分:13
注 册:2007-3-19
收藏
得分:0 
以前我刚学的时候做的方法是这样的,读取这个文件,写入到另一个文件中去,如果碰到要删除的那一条,就不写入,然后再删除原文件,对新文件改名.
现在一想,其实可以用RondomAccess这个类吧,现在我将我以前的代码发给你看下.

package tbn;

import
import
import
import
import
import java.util.Scanner;

/**
 *
 * @author dawn
 * @version 1.0
 * @since 1.0
 */
public class StudentInformationDelete extends RecordOperate {
    public void delete() {
        Scanner in = new Scanner(System.in);
        String deleteID = new String();
        System.out.println("请输入要删除的学号:");
        deleteID = in.next();
        if (findID(deleteID)) {
            if (panDuan("是否删除;(yes/no)")) {
                deleteRecord(deleteID);
            }
        } else {
            System.out.println("找不到相应的ID");
        }

    }

    /**
     * 这个方法是判断字符串内容是否在存档是有相同的ID存在
     *
     * @param args
     *            你要查找的字符串
     * @return 如果找到则true,没有找到则false
     */
    public boolean findID(String args) {
        boolean bool = false;
        String sth = "";
        try {
            BufferedReader read = new BufferedReader(new FileReader(
                    "StudentInformation"));
            while ((sth = read.readLine()) != null) {
                getStudentID(sth);
                if (args.equals(RecordOperate.studentID)) {
                    bool = true;
                    cutRecord(sth);
                    format();
                    displayRecord();
                    break;
                }
            }
            read.close();
        } catch (Exception e) {
        }

        return bool;
    }

    /**
     * 这个方法实面的功能是删除记录
     *
     * @param args
     *            要删除记录的ID号
     */
    public void deleteRecord(String args) {
        String sth = "";
        try {
            BufferedReader read = new BufferedReader(new FileReader(
                    "StudentInformation"));// 新建一个读文件的对象,操作的是存档文件
            BufferedWriter temp = new BufferedWriter(new FileWriter("tempfile",
                    true));// 新建一个新的写文件对象
            while ((sth = read.readLine()) != null) {
                getStudentID(sth);
                if (args.equals(RecordOperate.studentID)) {
                    continue;// 这个断判的意思是:如果有一条记录的被拆解后的ID与传递来的参数相同,
                    // 则不继续下面的操作
                }
                temp.write(sth + "\r\n");// 将读出来的内容写入到临时文件中去
            }
            read.close();
            temp.close();
            (new File("StudentInformation")).delete();// 删除这个以前存储文件
            File x = new File("StudentInformation");// 建立一个File对象
            (new File("tempfile")).renameTo(x);// 将这个临时文件重命名为存储文件名
        } catch (Exception e) {
        }

    }
}

2007-12-27 14:08
davidloves
Rank: 1
等 级:新手上路
帖 子:137
专家分:0
注 册:2007-1-6
收藏
得分:0 
正在看

2007-12-27 14:33
davidloves
Rank: 1
等 级:新手上路
帖 子:137
专家分:0
注 册:2007-1-6
收藏
得分:0 

2007-12-27 14:34
快速回复:怎么样修改一个文件已经有了的记录
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.020602 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved