Day_14【IO流】扩展案例2_缓冲字符输出、输入流进行用户名的创建
需求分析
1.项目根目录下建立文件: user.txt,文件中存放用户名和登录密码,格式:用户名,密码,如:aaa,123;
2.user.txt文件中初始存放的用户信息有如下:
jack,123
rose,123
tom,123
3.要求完成如下功能:
程序运行时:控制台提示用户输入注册的用户名和密码;
验证键盘录入的用户名跟user.txt中已注册的用户名是否重复:
是:控制台提示:用户名已存在
否:将键盘录入的用户名及密码写入user.txt文件,并在控制台提示:注册成功;
思路
1.键盘录入用户名和密码并用两个String变量接受
2.创建输入流对象关联user.txt
3.创建集合对象, 用于存储读取到的数据
4.定义boolean类型的标记flag, 假设键盘录入的用户名不存在, 默认为false
5.遍历集合获取到每一个数据(数据是用户名,密码的字符串, 思路不要乱)
a)根据逗号切割当前字符串, 获取字符串数组中0索引的用户名
b)拿着键盘录入的用户名和切割后的用户名逐个对比, 相同的话将flag改为true
6.判断flag
a)true : 提示已经存在
b)false: 创建输出流对象关联user.txt, 并将键盘录入的用户名和密码拼接上逗号写出.(注意尾部追加)
代码
package com.itheima2;
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
import java.util.ArrayList;
import java.util.Scanner;
public class Test2 {
public static void main(String[] args) throws IOException {
//创建键盘录入对象
Scanner sc = new Scanner(System.in);
//键盘录入用户名和密码并用两个String变量接受
System.out.println("请输入您的用户名:");
String userName = sc.nextLine();
System.out.println("请输入您的用户密码:");
String password = sc.nextLine();
//创建输入流对象关联user.txt
BufferedReader br = new BufferedReader(new FileReader("user.txt"));
//创建集合对象, 用于存储读取到的数据
ArrayList<String> array = new ArrayList<String>();
String line;
while((line = br.readLine()) != null) {
array.add(line);
}
br.close();
//定义boolean类型的标记flag, 假设键盘录入的用户名不存在, 默认为false
boolean flag = false;
//遍历集合获取到每一个数据(数据是用户名,密码的字符串, 思路不要乱)
for(String s : array) {
//根据逗号切割当前字符串, 获取字符串数组中0索引的用户名
String[] strArray = s.split(",");
//拿着键盘录入的用户名和切割后的用户名逐个对比, 相同的话将flag改为true
if(userName.equals(strArray[0])) {
flag = true;
}
}
//判断flag
if(flag) {
//true : 提示已经存在
System.out.println("用户名已存在");
} else {
//false: 创建输出流对象关联user.txt, 并将键盘录入的用户名和密码拼接上逗号写出.(注意尾部追加)
BufferedWriter bw = new BufferedWriter(new FileWriter("user.txt",true));
bw.write(userName+","+password);
bw.newLine();
bw.flush();
bw.close();
System.out.println("注册成功");
}
}
}
控制台输出内容

Day_14【IO流】扩展案例2_缓冲字符输出、输入流进行用户名的创建的更多相关文章
- java基础之IO流(二)之字符流
java基础之IO流(二)之字符流 字符流,顾名思义,它是以字符为数据处理单元的流对象,那么字符流和字节流之间的关系又是如何呢? 字符流可以理解为是字节流+字符编码集额一种封装与抽象,专门设计用来读写 ...
- Java基础-IO流对象之字节缓冲流(BufferedOutputStream与BufferedInputStream)
Java基础-IO流对象之字节缓冲流(BufferedOutputStream与BufferedInputStream) 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 在我们学习字 ...
- 01 语言基础+高级:1-8 File类与IO流_day09【字节流、字符流】
day09[字节流.字符流] 主要内容 IO流 字节流 字符流 异常处理 Properties 教学目标 能够说出IO流的分类和功能 能够使用字节输出流写出数据到文件 能够使用字节输入流读取数据到程序 ...
- java_缓冲流(字符输出输入流)
/** java.io.BufferedReader extends Reader * * 构造方法: * BufferedReader(Reader in):创建一个使用默认大小输入缓冲区的缓冲字符 ...
- IO流(一)__File对象和字符流FileWriter FileReader
IO流:IO流用来处理设备之间的数据传输,Java对于流的操作对象都在IO包中将外设中的数据读取到内存中:输入将内存的数写入到外设中:输出 流分为字节流和字符流字符流的由来:其实就是字节流读取文字字节 ...
- (16)IO流之输入字节流FileInputStream和输出字节流FielOutputStream
IO流技术解决的问题:设备与设备之间的传输问题,内存-->硬盘,硬盘-->内存,等等 IO流技术 如果按照数据的流向划分可以划分为:输入流和输出流 输入输出的标准是以程序为参考物的,如果流 ...
- Day_13【IO流】扩展案例2_统计键盘录入字符在指定项目文件中出现的次数
分析以下需求,并用代码实现 键盘录入一个字符(以字符串的形式录入) 判断当前字符在info3.txt当中是否存在 如果不存在, 给出提示 如果存在, 请统计出该字符出现的次数 Info3.txt内容如 ...
- Day_13【IO流】扩展案例2_统计指定项目文件中字符出现的次数
需求分析 统计当前项目下info2.txt文件中, 每个字符出现的个数 文件内容如下: welcome to itheima!!! 最终效果如下: w(1) (2)!(3)t(2)e(3)c(1)a( ...
- IO流(5)—缓冲流
1.IO体系: 抽象基类--节点流(文件流)--缓冲流(处理流的一种) InputStream --FileInputStream--BufferedInputStream OutputStream- ...
随机推荐
- 爬虫的新手使用教程(python代理IP)
前言 Python爬虫要经历爬虫.爬虫被限制.爬虫反限制的过程.当然后续还要网页爬虫限制优化,爬虫再反限制的一系列道高一尺魔高一丈的过程.爬虫的初级阶段,添加headers和ip代理可以解决很多问题. ...
- Python程序设计 实验 1 熟悉 IDLE 和在线编程平台
------------恢复内容开始------------ 安徽工程大学 Python程序设计 实验报告 班级 物流191 姓名 姚彩琴 学号3190505129 成绩 日期 2 ...
- STL迭代器的使用
STL的迭代器听起来怪吓人的,其实并不是什么高深的东西,说白了就是定义了一个指向STL的指针.. 对于没个STIL都可以定义 set,,vector ,,map,,,string 定义: set< ...
- google无法播放mp4 chrome无法播放h264
写在前面 我在chrome上无法播放h264+Acc的mp4,在firefox.ie都可以播放,而且此mp4在vlc终可以正常播放. 视频链接:http://106.14.221.185:7001/p ...
- 前端基础-HTML(1)
1.浏览器: 1.1 浏览器内核: 渲染引擎和JS引擎 渲染引擎:负责页面内容的在(html,xml,图像等).整理讯息(加入css等),以及计算网页的显示方式,然后输出至显示器后者打印机 JS引擎: ...
- curl请求本地域名问题
curl在本地虚拟机上请求本地接口时候,出现域名解析问题,换为ip即可,可用curl_error() 或者curl_errno来调试: vue单个文件在引入时候自己的逻辑js文件一定要放在html后引 ...
- ajax轮询思路
以我个人理解 ,ajax短轮询就是用定时器,定时请求数据库,然后把有用的数据做处理 ajax长轮询恩 就是在 ajax回调函数,继续调用ajax请求
- SQLI-LABS学习笔记(一)
逼话少说,如有错误,烦请指出,谢谢. 第一关 提示传个id的参数 后面跟个单引号 http://10.2.10.31/sqli/Less-1/?id=1’ 发现报错,这里看到是已经闭合了 You ha ...
- 抖音人脸识别Autojs脚本
title: 抖音人脸识别Autojs脚本 用Autojs写的抖音人脸颜值检测脚本 疫情期间宅家久了,昨天闲着没事(好吧,有事情,但是我不想做) ,消费之火熊熊燃烧.一咬牙把Autojs入正了.我 ...
- 【JAVA基础】04 Java语言基础:方法
1. 方法概述和格式说明 为什么要有方法 提高代码的复用性 什么是方法 完成特定功能的代码块. 方法的格式 修饰符 返回值类型 方法名(参数类型 参数名1,参数类型 参数名2...) { 方法 ...