本帖最后由 鲁柯 于 2013-1-14 11:19 编辑
到此为止吧,还是没搞清楚DataInputStream接收键盘数据时的问题怎么处理 碰到这类问题就用Scanner吧,省的麻烦
接收键盘输入的数字并打印 有哪些更简单的方法 怎么用DataInputStream的readInt方法接收键盘数据 我用的这个方法有点麻烦了 请大家指点迷津 谢谢
import java.io.*;
public class Test
{
public static void main(String[] args)
{
int[] arr = new int[5];
//对数组各元素进行赋值
for (int x=0; x<arr.length; x++)
{
//定义缓冲区,用于存放键盘录入数据
//具体定多少字节还不清楚,实验了一会,感觉8个还可以吧,
//再少数字稍大点就挂,再大点也没多大关系
byte[] buf = new byte[8];
int len = 0; //len用于存放键盘录入的字符个数
try
{
len = System.in.read(buf); //开始读取键盘录入数据
//对键盘录入数据进行转换,转为int类型,费了好大工夫才完成
//键盘录入数据是字节流,看到DataInputStream可以一次读入一个Int数据
//但没成功,就换了这样一个方法,将存入缓冲区的键盘数据转成字符串再转成数字
arr[x] = new Integer(new String(buf, 0, len-2));//这里的len长度包含数字输入后按的回车键\r\n
System.out.println(arr[x]);
}
catch (IOException e)
{
e.printStackTrace();
}
}
}
}
/*******************************************
try
{
//接收从键盘输入的一个整数
//查文档知读一个整数的方法在DataInputStream中
int num = new DataInputStream(System.in).readInt();
//将从键盘接收到的数字存入数组中
arr[x] = num;
//?????这个地方怎么得到的不是想要的数字呢??
System.out.println(arr[x]);
}
用上面的方法接收键盘数字得到的结果???
22
842140938
15
825560330
10
825232650
11
825298186
0
1
806160945
*/ |