Java不走弯路教程(3.用户验证与文件内容查询)
3.用户验证与文件内容查询
在上一章中,我们完成了对指定文件内容的输出操作。
我们现在有如下格式的文件product.db
id,product_name,product_detail
1,notebook,mac notebook
2,fruit,apple
我们想输出此文件的内容,可以把product.db放入c:\work\001下,然后运行
java main.MyNotepad product.db
但是,这个文件为企业的机密文件,不希望所有人都能查看到。于是,首先想到的就是加入用户名密码的校验功能。
后续章节中将不再使用MyNotepad.java
我们在MyNotepad.java所在的目录下建立MyDataBase.java,内容如下:
符号//后面的内容为注释内容,便于程序的阅读,程序编译运行时将自动忽略注释内容。
其他的注释规则请大家自行查阅。
修改程序,能接受传入的代码,验证通过后再输出文件内容:
调用方法为:java main.MyDataBase product.db root 123
其中root为用户名,123为密码

if else 可以理解为如果,否则
其中if语句括号中的条件只能有两种值:真,假。即true,false
符号&&表示 并且关系,符号 ||表示 或者关系
对于String类型的比较用equals方法,基本类型的比较用两个等于号==,若相同则为true,否则为false
上述语句可以理解为
如果 (用户名等于"root" 并且 密码等于"123"){
输出文件内容;
}否则{
输出"Access Denied."
}
对于并且,或者的逻辑运算规则如下:
对于A并且B,只有在A和B都为true的时候,结果为true。否则结果为false;
对于A或者B,只要A,B有一个为true,结果就为true,否则为false;
例:
true && true == true
true && false == false
false && true == false
false && false == false
true || true == true
true || false == true
false || true == true
false || false == false
编译后运行:java main.MyDataBase product.db root 123
输出:文件内容
运行:java main.MyDataBase product.db root xxx
输出:Access Denied.


需求变更:我想在验证用户通过后,输入SQL语句来查询文件,并且输入exit来退出程序。
效果如下:
c:\work\001>java main.MyDataBase root 123
Login OK, Please intput SQL to query, or type exit to exit.
mydb>select * from product
文件内容
mydb>exit
c:\work\001>
修改程序如下:

编译运行。
我在MyUtil.java中增加了下面三个方法:
public static void print(String message); //输出传入的字符串,不换行。
public static String readln(); //读取DOS中输入的一行字符串。
public static String getFileContentBySql(String sql); //根据传入的SQL查询文件(目前只支持select xxx from xxx where xxx=xxx格式)
while为循环控制语句,满足括号内条件,则进入循环体。
其中break语句退出循环体,continue语句返回到循环体头部。
总结
本章中我们学习了if,while语句,和数组的读取。
请大家自己完成if,while的学习和switch,for等流程控制语句的用法,以及一维数组,二维数组的创建和读取。
为什么要自己学?
Java的任何单独的知识点,大家用很短的时间都可以很快自学掌握,所以这部分没有必要花时间做逐一的介绍。
Java学习的最大困难在于知识点太多,太散,不知道核心在哪,怎么用。
所以本教程的目的是解决上述问题,用一个简单的例子不断扩展,进而达到主干分明的学习目的,同时培养了大家的自学能力和对主干的深化认识。
从而达到对自己的路有个明确的把握和在主干的基础上不断的适应新环境的学习能力。
版权声明:本教程版权归java123.vip所有,禁止任何形式的转载与引用。
Java不走弯路教程(3.用户验证与文件内容查询)的更多相关文章
- 使用mongo-java-driver3.0.2.jar和mongodb3.0在java代码中的用户验证4
以下是使用mongo-java-driver3.0.2.jar和mongodb3.0.4在java代码中的用户验证: ServerAddress sa = new ServerAddress(host ...
- Java不走弯路教程(2.Hello,Java!)
2.Hello,Java! 欢迎来到Java的世界,在上一章,我们已经完成了DOS的基本操作学习和Java的环境搭建,在本章中我们Java来完成一个简单的DOS程序. 2.1 Hello,Java! ...
- 多Excel文件内容查询工具。
多Excel文件内容查询工具. 告别繁琐重复的体力劳动,一分钟干完一天的活. 码云 github 下载 当需要在多个Excel表格中查询需要的信息是,一个文件一个文件的去查询非常麻烦. 虽然有其他方法 ...
- Java不走弯路教程(4.Client-Server模式(1)-Server)
4.Client-Server模式(1)-Server 在上一章中,我们完成了MyDataBase.java的编写,类似于一个简单的数据库功能,提供了用户验证,查询操作. 在本章中,我们将继续扩展这个 ...
- Java不走弯路教程(1.环境搭建)
1.环境搭建在开始写第一个Java程序之前,我们需要做一些简单的准备工作. 1.1 还记得DOS吗 我们可以通过图形界面来操作我们的电脑.但作为程序员,你首先需要学会用命令行的方式来操作电脑,因为不是 ...
- Java基础教程:IO流与文件基础
Java:IO流与文件基础 说明: 本章内容将会持续更新,大家可以关注一下并给我提供建议,谢谢啦. 走进流 什么是流 流:从源到目的地的字节的有序序列. 在Java中,可以从其中读取一个字节序列的对象 ...
- 大数据之路week07--day01(HDFS学习,Java代码操作HDFS,将HDFS文件内容存入到Mysql)
一.HDFS概述 数据量越来越多,在一个操作系统管辖的范围存不下了,那么就分配到更多的操作系统管理的磁盘中,但是不方便管理和维护,因此迫切需要一种系统来管理多台机器上的文件,这就是分布式文件管理系统 ...
- Java实现动态修改Jar包内文件内容
import java.io.*; import java.util.Enumeration; import java.util.LinkedList; import java.util.List; ...
- Java不走弯路教程(5.Client-Server模式(2)-Client)
5.Client-Server模式(2)-Client 在上一章,我们完成一个简单的数据库服务器,并在客户端用telnet方式成功进行通信. 本章将用Java实现客户端程序,来代替telnet. 先看 ...
随机推荐
- centos系统升级PHP版本程序
鉴于Centos 默认yum源的php版本太低了,手动编译安装又有点一些麻烦,那么如何采用Yum安装的方案安装最新版呢.那么,今天我们就来学习下如何用yum安装php最新版. 1.检查当前安装的PHP ...
- 前段 format方法
a.为字符串创建format方法,用于字符串格式化 String.prototype.format=function (arg) { //console.log(this,arg); //this,当 ...
- MongDB配置方法
先下载安装包 安装 方法一:命令行启动 在 C:\MongoDB\Server\3.4目录下建立data文件夹, data里面建立db文件夹 bin目录下运行 mongod --dbpath C:\M ...
- cookielib和urllib2模块结合模拟网站登录
1.cookielib模块 cookielib模块的主要作用就是提供可存储cookie的对象,以便于与urllib2模块配合使用来访问internet资源,例如可以利用本模块的cookiejar类的对 ...
- ASP.NET Core + Docker +Jenkins 实现持续集成
1.新建一个ASP.NET Core MVC应用程序: 2.将其上传到git: 3.建立Jenkins任务 (1)选择"新建任务",输入任务名称,选择"自由风格项目&qu ...
- 【转】C++ STL快速入门
转自:https://www.cnblogs.com/skyfsm/p/6934246.html 冠军的试炼 悟已往之不谏,知来者之可追 博客园 首页 新随笔 联系 订阅 管理 随笔 - 60 文章 ...
- codevs 搜索题汇总(黄金级)
2801 LOL-盖伦的蹲草计划 时间限制: 1 s 空间限制: 256000 KB 题目等级 : 黄金 Gold 题目描述 Description 众所周知,LOL这款伟大的游戏,有个叫盖 ...
- [ZJOI2010]基站选址
题目描述 有N个村庄坐落在一条直线上,第i(i>1)个村庄距离第1个村庄的距离为Di.需要在这些村庄中建立不超过K个通讯基站,在第i个村庄建立基站的费用为Ci.如果在距离第i个村庄不超过Si的范 ...
- [Ioi2011]ricehub
Description 乡间有一条笔直而长的路称为“米道”.沿着这条米道上 R 块稻田,每块稻田的坐标均 为一个 1 到 L 之间(含 1 和 L)的整数.这些稻田按照坐标以不减的顺序给出,即对于 0 ...
- Codeforces Round#409/VK-Cup 2017 Round2
来自FallDream的博客,未经允许,请勿转载,谢谢. 和ditoly组队打VK-Cup,起了个名字叫Vegetable Chicken(意思显然),然后昨天我做AB他切C 很不幸的是.....我写 ...