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 ...
随机推荐
- web前端分享JavaScript到底是什么?特点有哪些?
web前端分享JavaScript到底是什么?特点有哪些?这也是成为web前端工程师必学的内容.今天为大家分享了这篇关于JavaScript的文章,我们一起来看看. 一.JavaScript是什么? ...
- IPFS学习-IPNS
星际名称系统(IPNS)是一个创建个更新可变的链接到IPFS内容的系统,由于对象在IPFS中是内容寻址的,他们的内容变化将导致地址随之变化.对于多变的事物是有用的.但是很难获取某些内容的最新版本. 在 ...
- ObjectPool 对象池设计模式
Micosoft.Extension.ObjectPool 源码架构.模式分析: 三大基本对象: ObjectPool抽象类 ObjectPoolProvider抽象类 IPooledObjectPo ...
- 基于Tomcat的GeoServer部署步骤
一.安装JAVA 资源:JDK1.8 提取码:0y26 步骤: 1.安装完成后,右击"我的电脑",点击"属性",选择"高级系统设置": 2. ...
- flask项目统一捕获异常并自定义异常信息
背景: 在日常编写了一些flask项目,主要用于测试方面的mock场景,但迭代到后期发现有时候会抛出各种乱七八糟的异常或者直接500且没有任何异常信息,这种情况一般都是某个代码块没有用try ...
- eclipse 的安装
打开eclipse官网 https://www.eclipse.org/ 点击此处 再点击 最后点击下载 然后一路下一步安装即可 添加中文语言包 打开eclipse官网 https://www.ecl ...
- React: 高阶组件(HOC)
一.简介 如我们所知,JavaScript有高阶函数这么一个概念,高阶函数本身是一个函数,它会接收或者返回一个函数,进而对该函数进行操作.其实,在React中同样地有高阶组件这么一个东西,称为HOC, ...
- Python中的四种交换数值的方法
交换两个变量的值方法,这个面试题如果只写一种当然很简单,没什么可以说的. 今天这个面试是问大家有几种办法来实现交换两个变量的值. 在没开始看具体答案前,你可以先想想看 下面分别来说说这几种方法 方法一 ...
- Java基础语法02-流程控制-if-switch-for-while
流程控制语句 顺序结构 任何编程语言中最常见的程序结构就是顺序结构.顺序结构就是程序从上到下逐行地执行,中间没有任何判断和跳转. 分支结构 if(条件表达式){ 语句体;} 执行流程 首先判断条件表达 ...
- Mac Electron 应用的签名(signature)和公证(notarization)
背景 在MacOS 10.15之前,应用如果没有签名,那么首次打开时就会弹出这种“恶意软件”的提示框. 这时只要应用签名了,就不会弹这个框. 但在MacOS 10.14.5之后,应用如果没有公证(简单 ...