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数据分析的整个流程和基础知识
先来想一下数据分析的流程,第一步获取数据,因此本节内容就是获取数据以及对数据的基本操作. 1.数据导入 1.1 导入.xlsx文件 要导入一个.xlsx后缀的Excel文件,可以使用pd.read_e ...
- Rescue BFS+优先队列 杭电1242
思路 : 优先队列 每次都取最小的时间,遇到了终点直接就输出 #include<iostream> #include<queue> #include<cstring> ...
- Docker常用命令--ps/attach/run
ps查看container 若查看正在运行的container docker ps 查看所有的container docker ps -a run启动容器 第一次启动container docker ...
- Windows安装Tesseract-OCR 4.00并配置环境变量
一.前言 Tesseract-OCR 是一款由HP实验室开发由Google维护的开源OCR(Optical Character Recognition , 光学字符识别)引擎.与Microsoft O ...
- P1464 Function
Function 简 单 的 递 归 这道题一开始十分智障地用递归做,虽然知道没那么简单,但还是冒着送死的心态交了一遍,果然,如我所料 样例输入: 密密麻麻,几万行的样例输入 //:) ...
- BUUOJ Misc刷题大作战
你竟然赶我走 随便一个txt文件都可以拿 LSB 当然还有别的,根据里面左右左右变化,在0管道有变化,然后把下面的三个0打钩,导出png,一个二维码,扫出来 乌镇峰会种图 只要会用winhex打开文件 ...
- window 下 jmeter+ant 自动生成html报告并发送邮件
一.安装ant 1.ant 下载地址:https://ant.apache.org/bindownload.cgi 2.下载完成解压到指定目录下 3.配置ant 环境变量 新建系统变量 -ANT_HO ...
- [Yii2] 快速套模板,加载JS,CSS(HTML标签<base>)
刚开始学,弄了好久,不知道怎么加载JS.CSS,以及怎么不加载YII2自带的模板!其实真的好简单! 补: 其实是我垃圾,YII2默认访问路径是WEB,所以把style文件放到web下就能加载! 首先把 ...
- 深入浅出webpack笔记
1.CommonJS CommonJS是一种被广泛使用的JavaScript模块化规范,其核心思想是用过require方法来同步加载依赖的其他模块,通过moudle.exports导出需要暴露的接口, ...
- strpos的坑
$a = 'abcd'; $c = 'a'; echo strpos($a,$c)!==false ? '原来是兄弟' : '非我族类,砍ta';