java中点击按钮读取和写入文件实现登录和注册
代码功能:
1、点击JFrame窗口中的登录按钮 读取文件中数据实现登录
2、点击JFrame窗体中的注册按钮 写入文件中数据实现登录
注意:
1、只能在文件中插入一组数据,通过这一组数据来实现登录
2、注册时插入的数据不能为空
3、如果注册失败,点击登录按钮会出错(因为注册失败后,文件中数据为空,无法读取数据)
4、只在一个文件 Start.java 中实现
5、使用IO流 + 匿名内部类监听 + 窗体 实现
代码如下:
package com.ludx.job;import java.awt.Color;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;import javax.imageio.ImageIO;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JPasswordField;
import javax.swing.JTextField;//登录注册的页面
public class Start implements ActionListener{public static void main(String[] args) throws IOException{Start st = new Start();st.init();System.out.println("---------------------注册失败时不可登录--------------------"); //注册失败时文件为空,无数据}//用户名和密码为全局变量JTextField text1 = new JTextField(10);JPasswordField text2 = new JPasswordField(10);File file1 = new File("D:\\cm\\user.txt"); //创建File文件JLabel label = new JLabel(); //创建标签//初始化窗体public void init() throws IOException{//创建窗体 面板 标签 按钮 文本输入框 密码输入框 JFrame f = new JFrame();JPanel p = new JPanel();JLabel la1 = new JLabel("用户名:");JLabel la2 = new JLabel("密码:");JButton b1 = new JButton("登录");JButton b2 = new JButton("注册");p.add(la1);p.add(text1);p.add(la2);p.add(text2);p.add(b1);p.add(b2);p.add(label);f.add(p);f.setVisible(true); //可见f.setTitle("登录注册"); //标题f.setSize(500,300); //大小f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); //关闭后台f.setResizable(false); //不可改变f.setLocation(430, 150); //窗体位置f.setIconImage(ImageIO.read(new File("images/hdjs.jpg"))); //窗体图标//注册----------写入文件用户名和密码 (匿名内部类) b2.addActionListener(new ActionListener(){public void actionPerformed(ActionEvent e) {try {String s3 = text1.getText(); //获取文本输入框的用户名String s4 = text2.getText(); //获取文本输入框的密码//创建字节输出流FileOutputStreamFileOutputStream fos = new FileOutputStream(file1);//创建字符输出流OutputStreamWriterOutputStreamWriter osw = new OutputStreamWriter(fos);//创建字符缓冲输出流BufferedWriterdBufferedWriter bw = new BufferedWriter(osw);if(s3 == null || s3.length() <=0||s4 ==null ||s4.length()<=0){ //判空label.setText("注册失败");label.setForeground(Color.black);System.out.println("注册失败:输入不能为空!");}else{bw.write(s3); //把输入的用户名写到文件中bw.newLine();bw.write(s4); //把输入的密码写到文件中bw.newLine();label.setText("注册成功");label.setForeground(Color.black);System.out.println("注册成功的用户名为:"+s3);System.out.println("注册成功的密码为:"+s4);bw.close(); //关闭流}} catch (Exception e1) {e1.printStackTrace();label.setText("注册失败");label.setForeground(Color.black);System.out.println("注册失败:数据未插入到文件中!");} } });//登录 ----------读取文件中用户名密码 绑定监听事件 b1.addActionListener(this);}//绑定登录按钮(读取文件中已有的用户名和密码)//实现ActionListener接口后,强制要求重写的方法public void actionPerformed(ActionEvent e) {try{String s1 = text1.getText(); //获取文本输入框的用户名String s2 = text2.getText(); //获取文本输入框的密码//创建字节输入流FileInputStreamFileInputStream fis = new FileInputStream(file1);//创建字符输入流InputStreamReaderInputStreamReader isr = new InputStreamReader(fis);//创建字符缓冲输入流BufferedReaderBufferedReader br = new BufferedReader(isr);String m1 = br.readLine(); //读取文件中用户名 ; 不行,要定义为全局变量String m2 = br.readLine(); //读取文件中密码System.out.println("文件中的用户名为:"+m1);System.out.println("文件中的密码为:"+m2);if(m1.equals(s1) && m2.equals(s2)){label.setText("登录成功");label.setForeground(Color.black);System.out.println("登录成功的用户名为:"+s1);System.out.println("登录成功的密码为:"+s2);}else{label.setText("登录失败");label.setForeground(Color.black);System.out.println("登录失败:输入的用户名或密码不正确!");}//关闭流br.close();}catch (Exception e1) {e1.printStackTrace();}}
}
///有不足之处敬请指出
java中点击按钮读取和写入文件实现登录和注册相关推荐
- java中点击按钮出现echarts图表_echarts 显示下载按钮,echarts 自定义按钮,echarts 添加按钮...
echarts 显示下载按钮,echarts 自定义按钮,echarts 添加按钮 >>>>>>>>>>>>>>&g ...
- java写入文件编码格式为ansi_Java读取、写入文件如何解决乱码问题
读取文件流时,经常会遇到乱码的现象,造成乱码的原因当然不可能是一个,这里主要介绍因为文件编码格式而导致的乱码的问题.首先,明确一点,文本文件与二进制文件的概念与差异. 文本文件是基于字符编码的文件,常 ...
- Flutter进阶—读取与写入文件
Flutter使用path_provider插件读取与写入文件,path_provider插件提供了一种平台无关的方法来访问设备文件系统上常用的位置.该类目前支持访问两个文件系统位置: 临时目录:系统 ...
- java properties更新_对Java配置文件Properties的读取、写入与更新操作
String filepath=System.getProperty("user.dir"); 对下面的程序很有用... /** * 实现对Java配置文件Properties的读 ...
- java 保存inputstream_java如何将一个InputStream写入文件啊?
展开全部 java通过InputStream读取和写入文件操作e69da5e6ba903231313335323631343130323136353331333365643662实例代码 1. Fil ...
- java配置文件强制更新_对Java配置文件Properties的读取、写入与更新操作
对Java配置文件Properties的读取.写入与更新操作 注:当前项目路径是 String filepath=System.getProperty("user.dir"); 对 ...
- Java配置文件Properties的读取、写入与更新操作
/** * 实现对Java配置文件Properties的读取.写入与更新操作 */ package test; import java.io.BufferedInputStream; import j ...
- VUE实现华视身份证阅读器读取身份证信息(本文分两种情况,第一中是点击按钮读取信息,一种是自动读取信息)
本文是用了vue+element来实现华视身份证读卡器读取身份信息的,当然在开发之前要做好前提准备,就是厂家提供对应设备的api和安装对应的驱动.本文通过两种方法来实现读取信息,第一种是点击按钮读取信 ...
- WebDriver中点击按钮、连接无效问题
WebDriver中点击按钮.连接无效问题 之前在写一个测试用例的时候,就有发现点击提交按钮不起作用,今天又遇到点击链接也不起作用的情况.经过一些尝试,暂时已通过其他方式解决. 1. 软件 ...
- python读取写入文件_Python读取和写入文件
1 从文件中读取数据 1.1 读取整个文件 创建名为test的txt文本文件,添加内容如下所示: 1234567890 2345678901 3456789012 实现代码: with open('t ...
最新文章
- post请求参数格式
- 适合小白的卷积神经网络图解
- java 异常 规范_java 异常规范
- 基本算法个人PHP 实现(四)
- Spring与Hibernate整合中,使用OpenSessionInViewFilter后出现sessionFactory未注入问题
- .net 动软代码生成器
- linux防火墙ddos,Linux iptables防火墙详解 + 配置抗DDOS***策略实战
- Spring Cloud(二):服务注册与发现 Eureka【Finchley 版】
- 财务人员福音,财务收支报告模板
- Web前端开发-网页制作零基础入门-Dreamweaver2019+HTML+CSS视频教程
- 震旦打印机扫描显示服务器连接错误,震旦打印机Scan2me扫描失败(exchange邮箱)...
- Redis基础篇(一)
- Win10系统默认播放器一直被修改怎么解决
- 史上最详细Lip-reading with Hierarchical Pyramidal Convolution and Self-Attention文章记录
- 中英文说明书丨CalBioreagents ACTH抗原抗体对
- 一个老病号对感冒发烧的经验
- Ubuntu:安装rust
- linux 信号signum.h SIGINT SIGUSR1 SIGUSR2
- 四川大学计算机专业调剂,2019年四川大学计算机学院(软件学院)考研调剂信息
- 关于JDK8安装遇到1335问题