急求标准输入BYTE和STRING转换问题
System.in.read(x);
读取了以后是ASCII码。。。。。
怎么才能换成字符串?
问题点数:20、回复次数:6Top
1 楼YidingHe(机枪兵)回复于 2006-05-03 12:50:26 得分 10
下面是一个例子:
----------------------------------------------
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
public class Input {
/**
* 读取用户输入的一行
* @return 用户输入的一行字符
* @throws IOException 如果读取失败
*/
public static String readLine() throws IOException {
BufferedReader breader = new BufferedReader(new InputStreamReader(
System.in));
return breader.readLine();
}
}
Top
2 楼YidingHe(机枪兵)回复于 2006-05-03 12:57:39 得分 0
搞错了,
new String(x) 就可以了。Top
3 楼iambic()回复于 2006-05-03 12:59:34 得分 10
new String(byte[] bytes)
/******用你的方法写了段代码******/
public class Test {
public static void main(String args[]){
try {
StringBuffer stringBuffer = new StringBuffer(1024);
byte buffer[] = new byte[1024];
int len = 0;
while( (len = System.in.read(buffer)) > 0 ) {
stringBuffer.append(new String(buffer, 0, len));
}
System.out.println("result: "+stringBuffer.toString());
} catch(IOException e) {
e.printStackTrace();
}
}
}
Top
4 楼iambic()回复于 2006-05-03 13:00:35 得分 0
注意你没有检查byte[]的长度是否足够。Top
5 楼java_love007(苦到心甜)回复于 2006-05-03 16:55:28 得分 0
(len = System.in.read(buffer)>0
难道只有正数才能读取吗?这个判断有点问题
Top
6 楼iambic()回复于 2006-05-03 17:10:49 得分 0
我记得文档好像是返回-1是读到EOF,返回0应该也是可以的。写的时候贪顺手就没改。谢谢楼上的纠正。
还有我上面的那个注意是不合适的。主要问题不是bytes长度不够,而是长度多余的时候,返回的String对象可能会不正确。Top




