zoukankan      html  css  js  c++  java
  • Java IO 之 System类

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

     1 package org.zln.io;
     2 
     3 import java.io.IOException;
     4 
     5 /**
     6  * Created by coolkid on 2015/6/21 0021.
     7  */
     8 public class TestSystemInReadString {
     9     public static void main(String[] args) throws IOException {
    10         byte[] bytes = new byte[100];
    11         int len = 0;
    12         System.out.println("开始读取");
    13         while ((len = System.in.read(bytes))>0){
    14             System.out.println("len:"+len);
    15             System.out.write(bytes, 0, len);
    16             if (len>=4&&"exit".equalsIgnoreCase(new String(bytes,0,4))){
    17                 break;
    18             }
    19         }
    20         System.out.println("结束读取");
    21     }
    22 }
    E:GitHub oolsJavaEEDevelopLesson1_JavaSe_Demo1srcorgzlnioTestSystemInReadString.java

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

    2、使用System.console.readLine读取

     1 package org.zln.io;
     2 
     3 /**
     4  * Created by coolkid on 2015/6/21 0021.
     5  */
     6 public class TestConsole {
     7     public static void main(String[] args) {
     8         while (true){
     9             System.out.print("开始读取:");
    10             String s = System.console().readLine();
    11             System.out.println("read:"+s);
    12             if (s.length()>3&&"exit".equalsIgnoreCase(s.substring(0,4))){
    13                 break;
    14             }
    15 
    16         }
    17         System.out.println("读取结束");
    18     }
    19 }
    E:GitHub oolsJavaEEDevelopLesson1_JavaSe_Demo1srcorgzlnioTestConsole.java

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

    3、密码的隐藏输入

     1     private static void consoleReadPassword() {
     2         while (true){
     3             String s = new String(System.console().readPassword("%s","请输入密码:"));
     4             System.out.println("read:"+s);
     5             if (s.length()>3&&"exit".equalsIgnoreCase(s.substring(0,4))){
     6                 break;
     7             }
     8 
     9         }
    10         System.out.println("读取结束");
    11     }
    E:GitHub oolsJavaEEDevelopLesson1_JavaSe_Demo1srcorgzlnioTestConsole.java

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

  • 相关阅读:
    Python学习笔记(三)- 变量
    Python学习笔记(二)-程序执行原理
    Python学习笔记(一)
    牛客算法周周练7-A-收集纸片-dfs解决图的路径问题
    HihoCoder1078-线段树的区间修改-线段树区间修改、查询-模板题
    POJ1298-字符串转换-水题
    java的内存分析(内存模型)
    Linux的自有服务-SSH服务(重点)
    js-类似邮箱中的删除文件-全选、不选、反选
    jmeter数据分析,压测实现
  • 原文地址:https://www.cnblogs.com/sherrykid/p/4591931.html
Copyright © 2011-2022 走看看