Java System.out的输出缓冲

今天学习了java的正则表达式api,在写例子的时候遇到了让人摸不着头脑的问题:从控制台输入了字符串,却没有输出;直到输入的字符串不能匹配的时,一起与Unabled to match输出。相关代码如下:

刚开始还以为是输入Scanner的问题,整了半天也没有发现那里出现问题。后来在循环里加入了输出语句println发现输入是正常的,每次输入循环都会被正确执行。于是查看java api文档发现下面的话。

”另外,为了自动刷新,可以创建一个 PrintStream;这意味着可在写入 byte 数组之后自动调用 flush 方法,可调用其中一个 println 方法,或写入一个换行符或字节 (‘\n‘)。“

说明如果用print 来输出的话,内容会被缓存起来,直到遇到换行符才一起输出出去。

时间: 2024-10-06 23:40:14

Java System.out的输出缓冲的相关文章

Java应用程序中System.out.println输出中文乱码

Java应用程序中System.out.println输出中文乱码 2013-12-10 21:27:08cnblogs.com-bluepoint2009-点击数:3631 其实,解决办法比较简单,即:编译时指定编码为UTF-8,如: 1 javac -encoding utf-8 HelloJava.java 这样,再运行时就不会出现乱码. 一.中文问题的来源 计算机最初的操作系统支持的编码是单字节的字符编码,于是,在计算机中一切处理程序最初都是以单字节编码的英文为准进行处理.随着计算机的发

java:system根据输入的内容,然后输出

把输入的内容输出来:根据system.in的内容System.out.println输出出来 //限制读取的字符长度 InputStream ips = System.in; byte b[] = new byte[20]; System.out.println("请输入:"); int len = ips.read(b); System.out.println( new String(b, 0, len) ); //不限制读取的输入的字符长度 InputStream ipt = Sy

java的 IO流之缓冲流(转载)

java缓冲流本身不具IO功能,只是在别的流上加上缓冲提高效率,像是为别的流装上一种包装.当对文件或其他目标频繁读写或操作效率低,效能差.这时使用缓冲流能够更高效的读写信息.因为缓冲流先将数据缓存起来,然后一起写入或读取出来.所以说,缓冲流还是很重要的,在IO操作时记得加上缓冲流提升性能. 缓冲流分为字节和字符缓冲流 字节缓冲流为: BufferedInputStream-字节输入缓冲流 BufferedOutputStream-字节输出缓冲流 字符缓冲流为: BufferedReader-字符

【java的 IO流之缓冲流】

java缓冲流本身不具IO功能,只是在别的流上加上缓冲提高效率,像是为别的流装上一种包装.当对文件或其他目标频繁读写或操作效率低,效能差.这时使用缓冲流能够更高效的读写信息.因为缓冲流先将数据缓存起来,然后一起写入或读取出来.所以说,缓冲流还是很重要的,在IO操作时记得加上缓冲流提升性能. 缓冲流分为字节和字符缓冲流 字节缓冲流为: BufferedInputStream-字节输入缓冲流 BufferedOutputStream-字节输出缓冲流 字符缓冲流为: BufferedReader-字符

Java IO 过滤流 字节缓冲流 BufferedInput/OutputStream

Java IO 过滤流 字节缓冲流 BufferedInput/OutputStream @author ixenos 概念 BufferedInput/OutputStream是实现缓存的过滤流,他们分别是FilterInput/OutputStream的子类. BufferedInputStream工作流程 stream-->buf--read buf-->I 1.当一个BufferedInputStream被创建时,一个内部的缓冲区 byte[] buf = new byte[size]

使用System.out.printf()输出日志重定向到文件后显示混乱问题

写了一个小工具,使用System.out.printf()输出日志,以方便使用者查看,在终端显示没有问题,但重定向到文件就有问题了,会出现一些很奇怪的乱序现象. 上网查询资料,判断应该是跟重定向和Linux缓冲区有关,标准输出为行缓冲,文件为全缓冲,可以使用 stdbuf -oL [command] 来实现重定义缓冲区类型,于是将原先的启动脚本中的 nohup java ... & 改为 nohup stdbuf -oL ... & , 这样改完后用vim命令查看文件内容是正常的,但使用t

Java编程练习之输出考试成绩的前三名

在慕课网学习的时候遇到了这样一个Java编程练习题,正好对所学习的Java基础知识检验一下: 请根据所学知识,编写一个Java程序,实现输出考试成绩的前三名 要求: 1考试成绩已保存在数组scores中,数组元素依次为89 , -23 , 64 , 91 , 119 , 52 , 73 2要求通过自定义方法来实现成绩排名并输出操作,将成绩数组作为参数传入 3要求判断成绩的有效性( 0-100 ),如果成绩无效,则忽略此成绩 我自己分析了一下这个程序的过程: (1)首先是定义一个包含整型数组参数的

PHP输出缓冲控制 - Output Control 函 应用详解

简介 说到输出缓冲,首先要说的是一个叫做缓冲器(buffer)的东西.举个简单的例子说明他的作用:我们在编辑一篇文档时,在我们没有保存之前,系统是不会向磁盘写入的,而是写到buffer中,当buffer写满或者执行了保存操作,才会将数据写入磁盘.对于PHP来说,每一次像 echo 这样的输出操作,同样是先写入到了 php buffer 里,在脚本执行完毕或者执行了强制输出缓存操作,数据才会在浏览器上显示. 其实对于PHP程序员来说,基本上每个脚本都涉及到了输出缓冲,只是在大多数情况下,我们都不需

【Java】无须额外的包,把Java中的内容输出到Excel中,无乱码,绝对兼容Excel2003与2007

Java输出一段文本到txt中大家基本都会了,这已经是学习Java的必修课了,不会也没有问题,具体可以看<[Java]输入与输出与JDK1.5之后的新型字符串StringBuilder>(点击打开链接).网上对于Java内容转化成Excel的内容大多数都是需要什么poi包,jsl包,一堆奇奇怪怪的jar插件.其实仅仅利用java.io.*;这个基本包就能够把Java中的内容输出到Excel表中,当然,如果你是要处理Mysql数据库不要这样做了,直接一条Mysql的查询命令就能把Mysql的查询