请问怎样清空java的输入缓冲区?

问题描述

请问怎样清空java的输入缓冲区?就用C/C++中的flush(stdin),Thanks

解决方案

解决方案二:
flush()是对输出流的方法吧!如果清空输入缓冲区的话,可以循环读啊!知道返回-1
解决方案三:
byte[]b=newbyte[2048];intnum=din.read(b);//将输入的数据读到一个数组中循环判断num的值要是为-1的话则清空了否则还有数据
解决方案四:
Thanks
解决方案五:
JAVA自己不是有垃圾回收机制吗?
解决方案六:
不是的,搞错了,我第一次输入了一些数据,我在第二次输入之前想把以前的数据清空掉,这怎么清?如我第一次用system.in.read()输入了一字符,第二次用System.in.read(buffer)的时候就不要我输入,就把后面的字符打印出来了,请问怎样在第二次输入之前把输入缓冲区清掉,如下的代码:importjava.io.*;publicclassReadString{publicstaticvoidmain(String[]args)throwsIOException{intcounter=0;bytebuffer[]=newbyte[512];printStar();System.out.println("Thelengthofbufferarrayis:"+buffer.length);printStar();//TestreadacharSystem.out.println();printStar();System.out.print("Pleaseenterachar:");System.out.println("printtheinputcharis:"+(char)(System.in.read()));printStar();//TestreadastringSystem.out.println();printStar();System.out.print("Pleaseenterastring:");counter=System.in.read(buffer);System.out.println("Thelengthoftheinputstringis:"+counter);System.out.print("Theinputstringis:");for(inti=0;i<counter;i++){System.out.print(buffer[i]+"");}}publicstaticvoidprintStar(){System.out.println("***************************************");}}结果:***************************************Thelengthofbufferarrayis:512******************************************************************************Pleaseenterachar:gprinttheinputcharis:g******************************************************************************Pleaseenterastring:Thelengthoftheinputstringis:2//这里我没有输入,输入数组的长度就为2了Theinputstringis:1310
解决方案七:
你把buffer的内容读进来,又赋给counter了,想清空重新new一下,或置为空以后,重新读入。
解决方案八:
up.
解决方案九:
System.in会把你输入完后摁的回车换行也做为两个字符在输入缓冲区中,所以直接不用你输!你可以再你下一次输入之前读出来回车和换行符!代码如下://TestreadacharSystem.out.println();printStar();System.out.print("Pleaseenterachar:");System.out.println("printtheinputcharis:"+(char)(System.in.read()));printStar();System.in.read();System.in.read();//TestreadastringSystem.out.println();printStar();System.out.print("Pleaseenterastring:");counter=System.in.read(buffer);System.out.println("Thelengthoftheinputstringis:"+counter);System.out.print("Theinputstringis:");for(inti=0;i<counter;i++){System.out.print(buffer[i]+"");}}publicstaticvoidprintStar(){System.out.println("***************************************");}}

输出结果如下:***************************************Thelengthofbufferarrayis:512******************************************************************************Pleaseenterachar:hprinttheinputcharis:h******************************************************************************Pleaseenterastring:dThelengthoftheinputstringis:3Theinputstringis:1001310注意,此时虽然你好像只输入了一个d,但里面有三个,13和10分别为回车和换行的ASCII码
解决方案十:
倒没看到可以清空的方法。。只看到可以跳多少字符读
解决方案十一:
这就像C语言的scanf和c++的cin要用getchar()吃掉回车一样!
解决方案十二:
谢谢,非常感谢!

时间: 2025-01-21 10:01:09

请问怎样清空java的输入缓冲区?的相关文章

我的fflush(stdin)为什么没有丢弃输入缓冲区的内容

问题描述 我的fflush(stdin)为什么没有丢弃输入缓冲区的内容 操作系统为linux mint 17.2 测试代码为: #include int main(){ char mychar; scanf("%c",&mychar); fflush(stdin); printf("%cn",mychar); scanf("%c",&mychar); printf("%cn",mychar); return 0

java中输入输出流中被读取的字节去哪了

问题描述 java中输入输出流中被读取的字节去哪了 比如说,我从缓冲区读入一堆数据,通过字节输入流对象提供的方法,读取了1个字节,后面还有99个字节未读取.然而这一个字节在我读取之后去哪了?是拷贝到某个地方了吗?读取完之后是不是直接从流对象中释放了呢? 解决方案 说白了是存到内存中了之后被java垃圾回收机制从内存中释放了. 解决方案二: java 字节输入输出流Java字节输入输出流

请问怎样用java实现一个基于正则表达式的查找程序呢?

问题描述 各位高手,请问怎样用java实现一个基于正则表达式的查找程序呢? 解决方案 解决方案二:可以去看看horstmann写得corejavaVolumI第12章最后一节RegularExpressions:importjava.io.*;importjava.net.*;importjava.util.regex.*;/**ThisprogramdisplaysallURLsinawebpagebymatchingaregularexpressionthatdescribesthe<ahr

java实现输入输出流代码分享_java

1,编写一个程序,读取文件test.txt的内容并在控制台输出.如果源文件不存在,则显示相应的错误信息. package src; import java.io.File; import java.io.FileNotFoundException; import java.io.FileReader; import java.io.IOException; public class Test { public static void main(String[] args) { File f =

java 递归 输入一个ID 怎么把这个ID下所有的子ID 放入一个list里面 递归都写好了

问题描述 java 递归 输入一个ID 怎么把这个ID下所有的子ID 放入一个list里面 递归都写好了 HashMap> results = new HashMap>(); //输入的ID int ID=Integer.parseInt(Catid); //表中所有的数据 aas=cloudnewscategory.selectAllGory(); System.out.println("所有记录="+aas); for (CloudNewsCategory gory :

请问:用java代码mysql如何加载到memcached中?谢谢!!

问题描述 请问:用java代码mysql如何加载到memcached中?谢谢!! 请问:用java代码mysql如何加载到memcached中?谢谢!! 解决方案 你应该是想java调用数据库等访问mysql获取到数据,然后放入memcached等做缓存.

图片-请问: 用java代码创建excel表格模板,例子如下怎么创建?

问题描述 请问: 用java代码创建excel表格模板,例子如下怎么创建? 解决方案 用poi类,先做好模板,用poi填写 解决方案二: package com.paic.gcc.service.offwork.util; import java.io.OutputStream; import java.lang.reflect.Field; import java.text.SimpleDateFormat; import java.util.Date; import java.util.Li

转义字符-java,scanner输入的字符串,如输入yes判断却不等于yes

问题描述 java,scanner输入的字符串,如输入yes判断却不等于yes 贴一贴 package test; import java.util.Scanner; public class Test { public static void main(String[] args) { // TODO Auto-generated method stub Scanner scan=new Scanner(System.in); System.out.println("input now&quo

麻烦帮忙解下这道题关于java缓冲输入输出流

问题描述 麻烦帮忙解下这道题关于java缓冲输入输出流 用带缓冲的输入输出流为demo.txt文件写入"hello demo"字符串,并将文件中的内容读出来和显示 解决方案 直接要代码,不是好做法.建议自己查一下API文档,在io包下,相信你应该就能做出来了