站内搜索: 请输入搜索关键词

当前页面: 开发资料首页J2SE 专题输出有问题

输出有问题

摘要: 输出有问题


class InputStreamReaderPPPOE {
public static void main(String args[]){
try {
System.in.read();
int available =System.in.available();
System.out.println(available);
String s = null;
if(available-#62;0){
byte b[] = new byte[10];
System.in.read(b);
s =new String(b);
System.out.println(s);
}
} catch (IOException e) {
// TODO 自动生成 catch 块
e.printStackTrace();
}
输入123456789,一切都正常,只是在往b中赋值的时候是23456789,1没有了,输出也是23456789。小弟刚学JAVA,请教各位前辈了~~


System.in.read();这句不是已经把1读了吗,后面就没1了


一般都会把System.in这个InputStream包装再用的,比如:
try{
BufferedReader br=new BufferedReader(new InputStreamReader(System.in));
String line=null;
while((line=br.readLine())!=null-#38;-#38;line.length()!=0){
System.out.println(line);
}
}catch(Exception e){
e.printStackTrace();
}


改过了还是不行~~


改成什么样子了?


改完了以后还是一个效果,就是不知道输出的1为什么没了,想不明白,麻烦仔细解释解释,谢谢了!


你改什么了?
你用这个会没有1么?
try{
BufferedReader br=new BufferedReader(new InputStreamReader(System.in));
String line=null;
while((line=br.readLine())!=null-#38;-#38;line.length()!=0){
System.out.println(line);
}
}catch(Exception e){
e.printStackTrace();
}




从你写 的代码 来看,程序 的执行步骤是从上到下执行的,所以系统先要求你先输入因为你输入了123456789接着就是用对象system.out显示出来,然后判断:因为你输入了123456789,所以进入了if控制语句你输入的是23456789,然后系统对象system.out又输出这个字节组,还有你抛异常的时候最好抛哈ArrayIndexOutOfBoundsException,总的来说该程序从上到下执行了两次输入和输出,


System.in是一个InputStream,read()是InputStream的方法,作用是从输入流读取下一个数据字节,所以说第一次你调用read()的时候,1就已经被读走了,你下面再read当然就没1了撒


我的那个程序要怎么改,不能违背了我的初衷~~ 那段代码作用是不希望程序被挂起(这段程序怎么都不能被挂起),要怎么改? 我真的是晕了~~ 真是麻烦大家了!还是晕晕的!


System.in是一个InputStream,read()是InputStream的方法,作用是从输入流读取下一个数据字节,所以说第一次你调用read()的时候,1就已经被读走了,你下面再read当然就没1了撒
明白了,呵呵~~ 真是太感谢你的这段话了! 谢谢~~ 祝你好运朋友~~


谢谢大家~~


package io;

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;

public class Test1 {

/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub

try{
BufferedReader br=new BufferedReader(new InputStreamReader(System.in));
String line=null;
while((line=br.readLine())!=null-#38;-#38;line.length()!=0){
System.out.println(line);
}
}catch(Exception e){
e.printStackTrace();
}
}

}
这样不行么,你是要把输入的内容打印出来吗


给分了~~


↑返回目录
前一篇: 类加载问题-两种方式是否使用同一个类加载器
后一篇: 散分庆祝,顺便做做广告, 全球个联网 www.unitlink.cn 诚信社区,找工作,人才,商机,同好