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("沒有該用戶");
}
}
}
RandomAccessFile()实现用户注册功能, 新增,查询,更新的更多相关文章
- Mybatis入门教程之新增、更新、删除功能_java - JAVA
文章来源:嗨学网 敏而好学论坛www.piaodoo.com 欢迎大家相互学习 上一节说了Mybatis的框架搭建和简单查询,这次我们来说一说用Mybatis进行基本的增删改操作: 一. 插入一条数据 ...
- PHP5: mysqli 插入, 查询, 更新和删除 Insert Update Delete Using mysqli (CRUD)
原文: PHP5: mysqli 插入, 查询, 更新和删除 Insert Update Delete Using mysqli (CRUD) PHP 5 及以上版本建议使用以下方式连接 MySQL ...
- Web---创建Servlet的3种方式、简单的用户注册功能
说明: 创建Servlet的方式,在上篇博客中,已经用了方式1(实现Servlet接口),接下来本节讲的是另外2种方式. 上篇博客地址:http://blog.csdn.net/qq_26525215 ...
- 9、Django实战第9天:用户注册功能
今天完成的是用户注册功能... 首先把注册页面的前端文件register.html复制到templates目录下 编辑users.views.py,创建一个注册的类 class RegisterVie ...
- .NET MVC 4 实现用户注册功能
初学MVC,踩了不少坑,所以通过实现一个用户注册功能把近段时间学习到的知识梳理一遍,方便以后改进和查阅. 问题清单: l 为什么EF自动生成的表名后自动添加了s? l 如何为数据库初始化一些数据? l ...
- Django项目: 3.用户注册功能
本章内容的补充知识点 导入库的良好顺序: 1.系统库 2.django库 3.自己定义的库(第三方库) redis缓存数据库的数据调用速度快,但是不利于长时间保存. mysql用于长时间存储,但是调用 ...
- TODO:MongoDB的查询更新删除总结
TODO:MongoDB的查询更新删除总结 常用查询,条件操作符查询,< .<=.>.>=.!= 对应 MongoDB的查询操作符是$lt.$lte.$gt.$gte.$ne ...
- SQL Server2016 新功能实时查询统计信息
SQL Server2016 新功能实时查询统计信息 很多时候有这样的场景,开发抱怨DBA没有调优好数据库,DBA抱怨开发写的程序代码差,因此,DBA和开发都成为了死对头,无法真正排查问题. DBA只 ...
- mysql查询更新时的锁表机制分析
为了给高并发情况下的mysql进行更好的优化,有必要了解一下mysql查询更新时的锁表机制. 一.概述 MySQL有三种锁的级别:页级.表级.行级.MyISAM和MEMORY存储引擎采用的是表级锁(t ...
随机推荐
- 用canvas写飞机大战
1.老规矩,当我们开始做项目的时候,我们第一步就是要进行分析,当我们的游戏开始做的时候我们要把一整个游戏分成五个阶段来写: 五个阶段和我方飞机的生命值,还有游戏的得分情况如下: //游戏欢迎状态 co ...
- Java基础语法08-面向对象-枚举-包装类-接口
枚举 枚举是一种特殊的类它的对象是有限固定的几个常量对象. JDK1.5之前 构造器加private私有化 本类内部创建一组常量对象,并添加public static修饰符,对外暴露这些常量对象 JD ...
- [Android逆向]APK反编译与回编译
一.先查壳,再反编译看验证首先打开.apk文件==>反编译apk(dex/配置文件/资源文件(apk反编译失败)>修改关键文件实现自己的目的>重新打包签名(无法重新打包)==> ...
- ios学习之路:Xcode+swift+打包ipa一步一坑记录
咳咳,作为公司的Android开发(兼java接口开发,兼软件测试,兼运维……)由于公司ios开发小伙伴离我而去,ios的app出了问题,急需处理.于是领导决定由我来处理一下.就是用证书重新打包的事儿 ...
- leetcode菜鸡斗智斗勇系列(4)--- 单一数字的乘积和总合的减法
1.原题: https://leetcode.com/problems/subtract-the-product-and-sum-of-digits-of-an-integer/ Given an i ...
- ruby中的多线程和函数的关键字传参
1.实现ruby中的多线程 # def test1 # n = 1 # if n > 10 # puts "test1结束" # else # while true # sl ...
- CSS(2)---css字体、文本样式属性
css字体.文本样式属性 这篇主要讲CSS文本属性中的:字体样式属性 和 文本样式属性. 一.字体样式属性 CSS 字体属性主要包括:字体设置(font-family).字号大小(font-size) ...
- oracle中创建用户、角色、权限、表空间简单使用
一.数据库用户 创建数据库用户 create user 用户名 identified by 密码; 授权 grant 权限名 to 用户名; 查看当前用户权限 select * from sessio ...
- tf.nn.in_top_k的用法
tf.nn.in_top_k组要是用于计算预测的结果和实际结果的是否相等,返回一个bool类型的张量,tf.nn.in_top_k(prediction, target, K):prediction就 ...
- centos7 laravel 项目 npm install报错
npm install 初始化项目依赖的前端资源 报错 ERR xxx .. socket,symbol link is not supported ... 如果报错了 重新npm install ...