谁能帮我看看这段代码错在哪里啊
import java.io.*;
public class Findsort
{
public static void main(String[] args) throws
IOException {
BufferedInputStream in = new BufferedInputStream(System.in);
BufferedOutputStream out = new BufferedOutputStream(System.out);
int y[] = {2,4,5,7,9,0};
int a,l = 0;
byte b[] = new byte[2];
System.out.print( "Please enter the wanting number : ");
a = in.read(b,0,2);
for(int i = 0;i < 6;i++)
{
if(y[i] == a)
{
l = 1;
break;
}
}
if(l == 0)
{
out.write(b,0,1);
System.out.println( "NO found! ");
out.flush();
}
else
System.out.println( "Found! ");
}
}
请问这个程序错在哪里啊?为什么l的值总是1呢?
还有就是out.write(b,0,1)这一句有什么作用呢?
------解决方案--------------------测试了下,
a = in.read(b,0,2);
这里,总是得到2
那就是逻辑错误了
------解决方案--------------------为什么l的值总是1呢?====> a = in.read(b,0,2); 中的Read 函數返回的是讀取的字節數,無論你輸入什麽值, 返回的就是2個字節
还有就是out.write(b,0,1)这一句有什么作用呢?====> b 為讀入數據的緩沖區,這裏指調用out引用對象指向該緩沖區,然後對些緩沖區數據進行輸出.
------解决方案--------------------a = in.read(b,0,2);
这个是读取的字节数,当然所有的都是2