1、使用System.in.read读取,使用System.out.println 输出

 package org.zln.io;

 import java.io.IOException;

 /**
* Created by coolkid on 2015/6/21 0021.
*/
public class TestSystemInReadString {
public static void main(String[] args) throws IOException {
byte[] bytes = new byte[100];
int len = 0;
System.out.println("开始读取");
while ((len = System.in.read(bytes))>0){
System.out.println("len:"+len);
System.out.write(bytes, 0, len);
if (len>=4&&"exit".equalsIgnoreCase(new String(bytes,0,4))){
break;
}
}
System.out.println("结束读取");
}
}

E:\GitHub\tools\JavaEEDevelop\Lesson1_JavaSe_Demo1\src\org\zln\io\TestSystemInReadString.java

分析:上述代码存在缺陷,就是每次(行)读取的数据不能超过100字符,超过部分会被舍弃。

2、使用System.console.readLine读取

 package org.zln.io;

 /**
* Created by coolkid on 2015/6/21 0021.
*/
public class TestConsole {
public static void main(String[] args) {
while (true){
System.out.print("开始读取:");
String s = System.console().readLine();
System.out.println("read:"+s);
if (s.length()>3&&"exit".equalsIgnoreCase(s.substring(0,4))){
break;
} }
System.out.println("读取结束");
}
}

E:\GitHub\tools\JavaEEDevelop\Lesson1_JavaSe_Demo1\src\org\zln\io\TestConsole.java

分析:使用console类,必须在控制台中允许,不能在IDE。因为虚拟机是否具有控制台取决于底层平台,以及调用虚拟机的方式

3、密码的隐藏输入

     private static void consoleReadPassword() {
while (true){
String s = new String(System.console().readPassword("%s","请输入密码:"));
System.out.println("read:"+s);
if (s.length()>3&&"exit".equalsIgnoreCase(s.substring(0,4))){
break;
} }
System.out.println("读取结束");
}

E:\GitHub\tools\JavaEEDevelop\Lesson1_JavaSe_Demo1\src\org\zln\io\TestConsole.java

分析:效果与在Linux控制台中输入密码相同,就是不会显示输入的密码是多少,一定程度上防止密码泄露

Java IO 之 System类的更多相关文章

  1. Java—IO流 File类的常用API

    File类 1.只用于表示文件(目录)的信息(名称.大小等),不能用于文件内容的访问. package cn.test; import java.io.File; import java.io.IOE ...

  2. java io包File类

    1.java io包File类, Java.io.File(File用于管理文件或目录: 所属套件:java.io)1)File对象,你只需在代码层次创建File对象,而不必关心计算机上真正是否存在对 ...

  3. java中的System类

    System类代表系统,系统级的很多属性和控制方法都放置在该类的内部.该类位于java.lang包. 由于该类的构造方法是private的,所以无法创建该类的对象,也就是无法实例化该类.其内部的成员变 ...

  4. JAVA:IO流——File类

    1.掌握File 类的作用 2.可以使用File 类中的方法对文件进行操作 所有的 io 操作都保存在 java.io 包中. 构造方法:public File (String pathname) 直 ...

  5. [转]探究java IO之FileInputStream类

    使用FileInputStream类创建的InputStream对象可以用于从文件读取内容.两个常用的构造函数如下所示: ? 1 2 FileInputStream(String filePath) ...

  6. java IO之 File类+字节流 (输入输出 缓冲流 异常处理)

    1. File类

  7. JAVA IO:Scanner类

    使用Scanner类接收输入数据. JAVA提供了专门的输入数据类,此类可以完成BufferedReader类的功能,也可以方便的对输入数据进行验证,此类存放于JAVA.UTILL包中. 常用方法如下 ...

  8. 系统学习 Java IO (三)----文件类 File

    目录:系统学习 Java IO---- 目录,概览 Java IO API 中的 File 类可以访问基础文件系统. 使用 File 类,可以: 检查文件或目录是否存在. 如果目录不存在,创建一个目录 ...

  9. java 14 -5 System类

    System类包含一些有用的类字段和方法.它不能被实例化. 方法: 1.public static void gc():运行垃圾回收器. 2.public static void exit(int s ...

随机推荐

  1. 解决Nginx: [error] open() "/usr/local/Nginx/logs/Nginx.pid" failed(2:No such file or directory)

    /usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf

  2. ansible-palybook剧本

    1 ansible基础知识部分补充 1.1 ansible软件特点: · 可以实现批量管理 · 可以实现批量部署 · ad-hoc(批量执行命令)---针对临时性的操作 ansible clsn -m ...

  3. 使用deque保留有限的记录

    # 使用deque保留有限的记录 >>> from collections import deque >>> q = deque(maxlen=3) # 指定队列的 ...

  4. php+高德地图webapi 高德jsapi 实现 当前位置与目标位置距离 并按照距离排序(坐标逆转换)

    <script type="text/javascript" src="https://api.map.baidu.com/api?v=2.0&ak='自己 ...

  5. laravel自定义返回错误方法

    返回视图传递错误信息 function withInfoErr($msg){ return back()->with('error',$msg); } 返回视图提示消息 function wit ...

  6. 消费滚动滴log日志文件(flume监听,kafka消费,zookeeper协同)

    第一步:数据源 手写程序实现自动生成如下格式的日志文件: 15837312345,13737312345,2017-01-09 08:09:10,0360 打包放到服务器,使用如下命令执行,模拟持续不 ...

  7. 文件夹选项-安装功能-window服务

    我们初次使用windows10在显示一个文件的时候,可能不会将文件的扩展名显示出来,但是我们很多地方又需要更改文件的扩展名,打开文件的扩展名有两种方式 打开此电脑 ->>>点击右上方 ...

  8. BZOJ:2038: [2009国家集训队]小Z的袜子(hose)(莫队算法模板)

    题目链接:https://www.lydsy.com/JudgeOnline/problem.php?id=2038 解题心得: 第一次接触莫队算法,很神奇,很巧妙.莫队算法主要就是用来解决多次询问时 ...

  9. SAN---第二网的概念

    网络技术的优缺点:优点:连接能力,超强路由,管理能力,远距离缺点:低速以及高负载,强烈的软件需求,错误检测能力 SAN:storage area network(存储区域网络)--是一种基于光网的特殊 ...

  10. ip4addr_ntoa和不可重入函数

    在网络中,有一个转换IP地址到ASIIC字符串的函数,该函数的返回值所指向的ASIIC字符串驻留在静态内存中,所以该函数不可重入. 通俗的讲,在多任务系统中,一个任务执行在调用运行这个函数的时候,其他 ...