Java中的字符串流的读取和写入(创建文件并判断重复账户)
各位我又来了!!哎!好心酸!我还没注册到三天!!没法登上博客的首页!!心累!!
import java.io.BufferedOutputStream;
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.FileReader;
import java.io.FileWriter;
import java.io.IOException;
import java.util.Scanner; public class work2 { static Scanner next = new Scanner(System.in);
/**
* @param args
* @throws IOException
*/
public static void main(String[] args) throws IOException {
// TODO Auto-generated method stub
while(true){
System.out.println("请进行以下操作!\n1.注册\t2.登录");
int s = next.nextInt();
switch (s) {
case 1:
Login();
break;
case 2:
Logon();
break; default:
System.out.println("输入错误返回!!");
break;
}
}
} public static String SyIn(){
System.out.println("请输入账号!");
String str = next.next();
System.out.println("请输入密码!");
String str2 = next.next();
return str+" "+str2;
} public static void Logon() throws IOException{
//输入的账号和密码
String accountAndPassWork = SyIn();
//文档该在的位置
FileReader fin = new FileReader("C:\\Users\\wang\\Desktop\\Login.txt");
//字符流输出缓存区
BufferedReader reader = new BufferedReader(fin);
//文档中获取的账号和密码
String gainAccountAndPassWork = null;
//账号 的状态
boolean Y = false;
//让其返回一行一行的字符串
while((gainAccountAndPassWork = reader.readLine())!=null){
//判断字符串和密码加起来是否相同
if(gainAccountAndPassWork.equals(accountAndPassWork)){
System.out.println("登陆成功!");
Y = true;
break;
}else{
Y = false;
}
}
//关闭资源!
reader.close();
//如果状态是没有就不存在
if(Y == false){
System.out.println("该账号不存在或密码错误!!");
}
} public static void Login() throws IOException{
//输入的账号和密码
String accountAndPassWork = SyIn();
//文件的地址
File file = new File("C:\\Users\\wang\\Desktop\\Login.txt");
//判断文件在不在,不在的话创建
if(!file.exists()){
file.createNewFile();
}
//读取文件的内容
FileReader fileReader = new FileReader(file);
//字符流读取缓冲区
BufferedReader bufferR = new BufferedReader(fileReader);
//给字符读取缓冲器返回的字符设为null
String contrast = null;
//阿斯克码表的空格是23
int As = 32;
//将空格转为字符串
String kong = ""+(char)As;
//获取账号密码的截取
String[] Ac = accountAndPassWork.split(kong);
//在这里要有遍历所有的账户的举动
//不断地读取一行一行的字符串
while((contrast = bufferR.readLine())!=null){
//从返回的一行一行的字符串中找取空格并截取
String[] strAll = contrast.split(kong);
//判断账号是否有其相同,如果有就return
if(strAll[0].equals(Ac[0])){
System.out.println("用户名重复");
//关闭资源
bufferR.close();
return;
}
} //字符串流
FileWriter finWriter = new FileWriter("C:\\Users\\wang\\Desktop\\Login.txt",true);
//写入缓冲流
BufferedWriter buffer = new BufferedWriter(finWriter);
//格一行的,换行
buffer.newLine();
//写入账号和密码
buffer.write(accountAndPassWork);
//关闭资源
buffer.close();
System.out.println("注册成功!");
} }
Java中的字符串流的读取和写入(创建文件并判断重复账户)的更多相关文章
- java中的缓冲流BufferedWriter和BufferedReader
java中的缓冲流有BufferedWriter和BufferedReader 在java api 手册中这样说缓冲流: 从字符输入流中读取文本,缓冲各个字符,从而实现字符.数组和行的高效读取.可以指 ...
- java基础(四):谈谈java中的IO流
1.字节流 1.1.字节输出流output 1.1.1.数据写入文件中 通过api查找output.找到很多,其中java.io.OutputStream,OutputStream: 输出字节流的超类 ...
- Java中的IO流,Input和Output的用法,字节流和字符流的区别
Java中的IO流:就是内存与设备之间的输入和输出操作就成为IO操作,也就是IO流.内存中的数据持久化到设备上-------->输出(Output).把 硬盘上的数据读取到内存中,这种操作 成为 ...
- Java中的IO流(五)
上一篇<Java中的IO流(四)>记录了一下Properties类,此类不属于IO流,它属于集合框架.接下来说一下IO流中的其它流 一,打印流PrintStream PrintStream ...
- Java中的IO流(六)
上一篇<Java中的IO流(五)>把流中的打印流PrintStream,PrintWriter,序列流SequenceInputStream以及结合之前所记录的知识点完成了文件的切割与文件 ...
- Java中的IO流(四)
上一篇<Java中的IO流(三)>把IO流中的文件及目录操作的对象File类记录了一下,本篇把本不属性IO流但又和IO流有关系的一个对象作一下记录,此对象本属于集合框架里的一个子集,即Pr ...
- Java中I/O流之轮换流
Java 中的轮换流: 非常有用,可以把一个字节流转换成字符流. inputStreamReader, outputStreamReader Demo_1: import java.io.*; cla ...
- Java中I/O流之缓冲流
Java 中的缓冲流: 1. 缓冲流要“套接”在相应的节点流之上,对读写的数据提供了缓冲的功能,提高了读写的效率,同时增加了一些新的方法(带缓冲区的,显著减少对 IO 的读写次数,保护硬盘). 2. ...
- Java中的IO流之输出流|乐字节
大家好,乐字节小乐又来了.上一篇给大家带来的是:Java中的IO流之输入流|乐字节,本文将继续讲述IO流之输出流. 一.输出流 1.抽象类:OutputStream 和 Writer Output ...
随机推荐
- java File delete 无法删除文件的原因。
windows下使用java.io.File.delete()方法删除文件时,返回值为true. 但是本地文件仍然存在,也就是说没有删除成功. 这时候你要检查下你传进来的文件目录格式是否正确. 正确: ...
- DOM对象控制HTML无素——详解2
节点属性 在文档对象模型 (DOM) 中,每个节点都是一个对象.DOM 节点有三个重要的属性 : 1. nodeName : 节点的名称 2. nodeValue :节点的值 3. nodeType ...
- 设置session的生命周期(php)
PHP中,Session变量保存在服务器端(默认以文件格式保存),而Session ID以cookie形式保存在客户端. 销毁session的方法有2种 第一种是通过程序 session_destor ...
- PHP_EOL常量
PHP_EOL 换行符 unix系列用 \n windows系列用 \r\n mac用 \r PHP中可以用PHP_EOL来替代,以提高代码的源代码级可移植性 如: <?php echo PHP ...
- python中文字符串前加u
我明明在编码前就加上了# -*- coding: UTF-8 -*-可是运行时还是出错了, # -*- coding: UTF-8 -*- 这句是告诉python程序中的文本是utf-8编码,让pyt ...
- VS快捷键和技巧
1. 怎样调整代码排版的格式? 选择:编辑->高级->设置文档的格式或编辑->高级->设置选中代码的格式. 格式化cs代码:Ctrl+k+f 格式化aspx代码:Ctrl+k+ ...
- 工作总结:qsort函数用法
qsort(&g_AMTBuf[g_dwAMTLenth], m_nCount, sizeof(12), Compare); 参数说明: 1.待排序数组首地址: 2.数组中待排序元素数量: 3 ...
- MYSQL查看和修改存储引擎
最近,公司的BBS压力越来越大,表死锁越来越严重. 在其它优化同作的情况下,MYISAM引擎转为INNODB引擎也纳入计划当中. 参考URL如下:简单,但要注意备份... ============ h ...
- Android Studio使用远程依赖时下载不了jar包的解决方法
使用AS很大的一个好处就是可以使用在线jar包,只需在引用jar包的时候在版本后加上+,比如: compile 'com.facebook.fresco:fresco:0.1.0+' 这样不用在jar ...
- 基于Node.js的强大爬虫 能直接发布抓取的文章哦
基于Node.js的强大爬虫 能直接发布抓取的文章哦 基于Node.js的强大爬虫能直接发布抓取的文章哦!本爬虫源码基于WTFPL协议,感兴趣的小伙伴们可以参考一下 一.环境配置 1)搞一台服务器,什 ...