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. 先看 ...
随机推荐
- AOP及专有名词通俗解答
AOP面向切面编程,是一种编程思想,并不是Spring专有,Spring是封装代理模式完成,之前的博客中也写到了关于AOP的文章,Filter和代理,请见<以此之长,补彼之短----AOP(Fi ...
- python/数据类型和变量
数据类型和变量 数据类型 计算机顾名思义就是可以做数学计算的机器,因此,计算机程序理所当然地可以处理各种数值.但是, 计算机能处理的远不止数值,还可以处理文本.图形.音频.视频.网页等各种各样的数据, ...
- Django 基于session认证 小作业
基于session认证 相亲小作业 用户登录 如果男用户登录,显示女生列表 如果女用户登录,显示男生列表 """s4day74 URL Configuration Th ...
- Java:Java 中会存在内存泄漏吗
理论上Java因为有垃圾回收机制(GC)不会存在内存泄露问题(这也是Java被广泛使用于服务器端编程的一个重要原因):然而在实际开发中,可能会存在无用但可达的对象,这些对象不能被GC回收,因此也会导致 ...
- POJ-3169 Layout---差分约束系统+Bellman
题目链接: https://vjudge.net/problem/POJ-3169 题目大意: 一些母牛按序号排成一条直线.有两种要求,A和B距离不得超过X,还有一种是C和D距离不得少于Y,问可能的最 ...
- hdu-2639 Bone Collector II---第k大背包
题目链接: http://acm.hdu.edu.cn/showproblem.php?pid=2639 题目大意: 求第k大背包. 思路: 由01背包递推式dp[i][j] = max(dp[i][ ...
- 生成器以及yield语句
生成器以及yield语句最初的引入是为了让程序员可以更简单的编写用来产生值的序列的代码. 以前,要实现类似随机数生成器的东西,需要实现一个类或者一个模块,在生成数据的同时 保持对每次调用之间状态的跟踪 ...
- NLog日志管理工具(转)
一.通过VS建立一个控制台应用程序. 二.打开程序包管理器控制台.具体操作如下:[工具]>[库程序包管理器]>[程序包管理器控制台]. 三.在程序包管理器控制台下输入命令:Install- ...
- 探寻 webpack 插件机制
webpack 可谓是让人欣喜又让人忧,功能强大但需要一定的学习成本.在探寻 webpack 插件机制前,首先需要了解一件有意思的事情,webpack 插件机制是整个 webpack 工具的骨架,而 ...
- [Luogu 2816]宋荣子搭积木
Description saruka非常喜欢搭积木,他一共有n块积木.而且saruka的积木很特殊,只能一块块的竖着摞,可以摞很多列.说过saruka的是特殊的积木了,这些积木都非常智能,第i块积木有 ...