• RandomAccessFile()实现用户注册功能, 新增,查询,更新


    package seday03.raf;
    import java.io.IOException;
    import java.io.RandomAccessFile;
    import java.util.Arrays;
    import java.util.Scanner;

    /**
    * @author xingsir
    * 用户注册功能
    * 程序启动后,用户输入用户名,密码,年龄
    * 然后将信息写入到文件text2.txt中。其中用户名,密码,为字符串,年龄为int值。
    *
    * 格式:
    * 每条记录占用固定的100字节
    * 其中用户名,密码 各占32字节,为字符串。年龄是int值,固定为4字节。
    *
    */
    public class RegDemo {

    public static void main(String[] args) throws IOException {
    //控制台輸入
    Scanner scanner=new Scanner(System.in);
    System.out.println("请输入用户名:");
    String username= scanner.nextLine();
    System.out.println("请输入密码:");
    String password=scanner.nextLine();
    System.out.println("请输入年龄:");
    int age = Integer.parseInt(scanner.nextLine());

    RandomAccessFile raf=new RandomAccessFile("test2.txt", "rw");
    //将指针移动到文件末尾
    raf.seek(raf.length());
    //写用户名
    byte[]data=username.getBytes("utf-8");
    data=Arrays.copyOf(data,32);//各占32字节
    raf.write(data);
    //写密码
    data =password.getBytes("utf-8");
    data =Arrays.copyOf(data, 32);//各占32字节
    raf.write(data);

    //写年龄
    raf.writeInt(age);
    System.out.println("注册完毕!");
    raf.close();

    }

    }

    //=====================================================================================

    package seday03.raf;

    import java.io.IOException;
    import java.io.RandomAccessFile;

    /**
    * @author xingsir
    * 将test2.txt文件中的所有用户信息输出到控制台
    */
    public class ShowAllUserDemo {

    public static void main(String[] args) throws IOException {
    RandomAccessFile raf =new RandomAccessFile("test2.txt","r");
    //读取用户名
    for(int i=0;i<raf.length()/100;i++) {
    byte[] data=new byte[32];//定义数组,32位
    //读取
    raf.read(data);
    //转换为字符串格式
    String username= new String(data,"utf-8").trim();

    raf.read(data);
    String password =new String(data,"utf-8").trim();

    //转换为int格式
    int age = raf.readInt();
    //输出
    System.out.println(username+","+password+","+age);

    }
    raf.close();
    }

    }

    //==============================================================================

    package seday06;

    import java.io.IOException;
    import java.io.RandomAccessFile;
    import java.util.Arrays;
    import java.util.Scanner;

    /**
    * @author xingsir
    * 程序启动后,要求用户输入用户名和新密碼。
    * 然后将test2.txt文件中对应用户的密码更改。
    * 如果输入的用户不存在,则提示沒有該用戶。
    */
    public class UpdateDemo {

    public static void main(String[] args) throws IOException{

    Scanner scanner =new Scanner(System.in);
    System.out.println("请输入用户名");
    String username= scanner.nextLine();
    System.out.println("请输入新的密码");
    String password= scanner.nextLine();

    RandomAccessFile raf =new RandomAccessFile("test2.txt", "rw");
    boolean update =false;//初始值为false
    for(int i=0;i<raf.length()/100;i++) {
    raf.seek(i*100);
    //读取用户名
    byte[] data= new byte[32];
    raf.read(data);
    String name = new String(data,"UTF-8").trim();
    //判断输出的名字是否有
    if(name.equals(username)) {
    //改密碼
    raf.seek(i*100+32);
    data =password.getBytes("utf-8");
    data=Arrays.copyOf(data, 32);
    raf.write(data);
    System.out.println("修改完毕!");
    update = true;
    break;
    }

    }
    if(!update) {
    System.out.println("沒有該用戶");

    }

    }
    }

  • 相关阅读:
    win7下安装Linux实现双系统全攻略
    Dreamweaver_CS6安装与破解,手把手教程
    windows Server 2008各版本有何区别?
    如何查看路由器中的pppoe拨号密码?
    xp远程桌面连接最大用户数怎么设置?
    网站的盈利模式
    linux 下安装mysql-5.7.16
    GNS3连接虚拟机
    cain使用教程
    数据中心网络架构的问题与演进 — CLOS 网络与 Fat-Tree、Spine-Leaf 架构
  • 原文地址:https://www.cnblogs.com/xingsir/p/12018091.html
Copyright © 2020-2023  润新知