package test;

import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream; public class TestIo { public static void main(String[] args) {
// 创建标准输入流的对象
InputStream is = System.in;
// 创建标准输出流的对象
OutputStream os = System.out;
try {
// 创建指定长度的缓冲区
byte[] buffer = new byte[10];
// 定义结束条件,检测实际的读取字节长度
int len = 0;
// len接收输入流is向Buffer实际读入的字节长度
// 循环(无所谓,在这里呈现的是可以一直在控制台测试的结果)
while ((len=is.read(buffer, 0, 4) )!= -1) {// 如果输入流不是控制台接收的,是从资源读取时,当读取完资源时read返回-1,即结束循环
// 显示实际的读取字节长度
System.out.println("缓存字符长度:" + len);
// os接收由Buffer中向外写入的信息,并直接显示在控制台
os.write(buffer, 0, 4);
System.out.println("---------------");
}
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
} /*
* 测试结果呈现: 从键盘输入: 12345
*
*
* 控制台输出结果:
*
* 缓存字符长度:4 1234--------------- 缓存字符长度:3 5 4---------------
*
*
* 从呈现的结果并结合API分析得到:
* 缓冲区域内的数据一旦写入就会一直存在,等待下一次读入数据的覆盖;
* 所以,当第二次的读入操作长度没有达到指定缓存区长度时, 缓存区内会有上一次数据的残留, 这就是最后4输出的原因;
* 注意:在UTF-8编码下,回车 \r ,换行 \n 各占一个字节,当在控制台进行回车操作时会向输入流中写入这两个编码
*/

System.in与System.out(标准输入与标准输出)详解的更多相关文章

  1. IllegalStateException : Web app root system property already set to different value问题详解

    一.问题描述     最近公司有了一个新项目,这个项目最近部署到测试服务器上的时候出现了一个问题. 严重: Exception sending context initialized event to ...

  2. java 标准输出与标准错误 out与 err 区别 用法 联系 java中的out与err区别 System.out和System.err的区别 System.out.println和System.err.println的区别 Java重定向System.out和System.err

    本文关键词: java 标准输出与标准错误    out与 err 区别 用法 联系  java中的out与err区别  System.out和System.err的区别 System.out.pri ...

  3. java 输入输出IO流:标准输入/输出System.in;System.out;System.err;【重定向输入System.setIn(FileinputStream);输出System.setOut(printStream);】

    Java的标准输入输出分别通过System.in和System.out来代表的,在默认情况下它分别代表键盘和显示器,当程序通过System.in来获取输入时,实际上是从键盘读取输入 当程序试图通过 S ...

  4. System.Properties和System.getenv区别

    网上很多使用的是getProperties.说获得系统变量,但是其实不正确.getProperties中所谓的"system properties"其实是指"java s ...

  5. System.err与System.out的区别

    大多数操作系统都有三个标准文件描述符:标准输入,标准输出,标准出错. 三个操作系统的文件描述符映射到编程语言的标准库中,往往加了一层包装,但是名字通常还是叫标准输入,标准输出,标准出错. 在其它语言中 ...

  6. System.setProperty 与 System.getProperty

    转自:https://www.cnblogs.com/woftlcj/p/8404451.html System可以有对标准输入,标准输出,错误输出流:对外部定义的属性和环境变量的访问:加载文件和库的 ...

  7. java基础(System.err和System.out)

    今天有位同事在使用System.err和System.out遇上了一些小问题. 看了些资料总结下: 1.JDK文档对两者的解释: out: "标准"输出流.此流已打开并准备接受输出 ...

  8. allow zero datetime=true导致datetime转换失败:MySql.Data.Types.MySqlDateTime”的对象无法转换为类型“System.Nullable`1[System.DateTime]

    allow zero datetime=true导致datetime转换失败:MySql.Data.Types.MySqlDateTime”的对象无法转换为类型“System.Nullable`1[S ...

  9. java.io中的System.in、 System.out和System.err

    System.in, System.out, System.err这3个流同样是常见的数据来源和数据流目的地.使用最多的可能是在控制台程序里利用System.out将输出打印到控制台上. JVM启动的 ...

随机推荐

  1. H5非主体结构元素

    1.header元素:页面中一个内容区块或整个页面的标题: 具有引导和导航作用的结构元素,通常用来放置整个页面或页面内的一个内容区块的标题,也可以包含数据表格.搜索表单或相关的logo图片. 一个网页 ...

  2. 学渣也要搞 laravel(2)—— HTTP路由[1]篇

    前几天忙了,然后快两个星期没有发博客.今天正式回归.哈哈 1. 路由 说到路由当时学的时候给我疑惑了几天..没有仔细看文档.然后一脸蒙蔽的去用 postman[谷歌插件] 测试路由方法.然后就很奇怪 ...

  3. 【python之旅】python简介和入门

    python简介: 一.什么是python python的创始人为吉多·范罗苏姆(Guido van Rossum).1989年的圣诞节期间,吉多·范罗苏姆为了打发时间,决心开发一个新的脚本解释程序, ...

  4. HDFS 搭建记录

    1. 三台服务: 172.17.0.62(namenode) 172.17.0.68(datanode) 172.17.0.76(datanode) /etc/hosts包含的内容: 三台都包含的域名 ...

  5. X/Open DTP——分布式事务模型

    转载:http://www.cnblogs.com/aigongsi/archive/2012/10/11/2718313.html 这一几天一直在回顾事务相关的知识,也准备把以前了解皮毛的知识进行一 ...

  6. FutureTask源码解读

    import java.util.concurrent.Callable; import java.util.concurrent.ExecutionException; import java.ut ...

  7. nutch 大量网站

    下载地址:http://rdf.dmoz.org/rdf/content.rdf.u8.gzDMOZ网站是一个著名的开放式分类目录(Open DirectoryProject),之所以称为开放式分类目 ...

  8. hdu3949 XOR xor高斯消元

    XOR Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Total Submiss ...

  9. BZOJ 2005 能量采集

    Description 栋栋有一块长方形的地,他在地上种了一种能量植物,这种植物可以采集太阳光的能量.在这些植物采集能量后,栋栋再使用一个能量汇集机器把这些植物采集到的能量汇集到一起. 栋栋的植物种得 ...

  10. CFUUIDRef和CFStringRef-生成唯一标识符

    - (NSString *)createCUID:(NSString *)prefix{ NSString *  result; CFUUIDRef   uuid; CFStringRef uuidS ...