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 ...
随机推荐
- Litho在美团动态化方案MTFlexbox中的实践
1. MTFlexbox MTFlexbox是美团内部应用的非常成熟的一种跨平台动态化解决方案,它遵循了CSS3中提出的Flexbox规范来抹平多平台的差异.MTFlexbox适用于重展示.轻交互的业 ...
- .Net中WebService的Demo示例
一.创建一个Web服务 1.新建一个项目WebserverDemo 2.在项目处添加新建项,添加一个web服务 3.编辑TestServer.asmx文件 3.1 TestServer.asmx默认的 ...
- 【译】ModSecurity事务生命周期
本篇简要介绍ModSecurity Transaction Lifecycle,也即ModSecurity的事务生命周期. Transaction Lifecycle In ModSecurity, ...
- Matlab非线性规划
非线性规划 在matlab非线性规划数学模型可以写成一下形式: \[ minf(x)\\ s.t.\begin{cases} Ax \le B \\ Aeq·x = Beq\\ C(x) \le 0\ ...
- https类型接口,关闭认证(verify=False)情况下消除告警的方法
一.问题描述 当我们测试接口的协议为https时,当关闭了认证(verify=False)的时候,我们测试通过了,但是使用有一条警告显示,最终生成的测试报告也不美观,如下图 二.解决办法 我们可以在封 ...
- MySql数据库之数据库基础命令
继续上篇博客所说到的,使用命令玩转MySql数据库. 在连接数据库时,我们需要确定数据库所在的服务器IP,用户名以及密码.当然,我们一般练习都会使用本地数据库,那么本地数据库的连接命令如下: mysq ...
- asp.net core使用serilog将日志推送到腾讯云日志服务
为什么是serilog? Serilog是 .NET 中最著名的结构化日志类库. 基于日志事件log events,而不是日志消息log message. 你可以将日志事件格式化为控制台的可读文本或者 ...
- C#通用查询器
很多通用查询器,对查询条件中的AND及OR的支持度不是很好,要么全部是AND要么全部是OR.笔者通过一段时间的摸索,终于完成了一个自己较为满意的通用查询器, 可以实现多条件的AND及OR,现将实现过程 ...
- elasticSearch的部署和使用
部署服务 docker run启动elastic服务 docker pull elasticsearch:6.7.2 docker run -d -p 9200:9200 -p 9300:9300 - ...
- SpringBoot 项目运行在 tomcat7 上
SpringBoot 项目如何打成 war 包 SpringBoot项目的默认打包方式是将工程打包成为一个 jar 包.部分情况下,我们需要将项目打包成一个 war 包,以方便我们将工程部署在 tom ...