java中用字节流输出流写数字和输出流输入流关闭的问题

代码如下:publicclassOutputStreamDemo{publicstaticvoidmain(String[]args)throwsIOException{... 代码如下:
public class OutputStreamDemo {
public static void main(String[] args) throws IOException{
BufferedOutputStream bos = new BufferedOutputStream(System.out);

bos.write(49); //为什么写出的是1?而不是49?
bos.close();

BufferedInputStream bis = new BufferedInputStream(new FileInputStream("c:/abc.txt"));
byte[] bt = new byte[1024];
int len = bis.read(bt); //为什么先关闭了输出流,输入流的读取也不读取了?
System.out.println(new String(bt, 0, len));
bis.close();
}
}
两个问题:
第一:为什么用字节流写入49最后也是1呢?字符流是查码表转为字符,所以字符流是写出1。但是字节流不是写的字节么,传入参数的最低8位,49的最低8位仍然是49啊,不明白为什么字节流也转为字符。
第二:为什么先关闭了输出流后,输入流也不执行了?没有读取的数据,这是为什么?
展开
 我来答
百度网友b7ea76be85
2014-03-11 · 超过28用户采纳过TA的回答
知道答主
回答量:41
采纳率:0%
帮助的人:54.9万
展开全部
首先 字节流写入的不是 "49" 而是 110001==49 而显示会把他转化为字符 对应的ascii字符 '1';

其次 并不是输入流不读取了 而是读取的内容打印不了
因为bos 构造自 System.out
bos.close() 会调用 System.out.close();
既然System.out 都被关闭了 System.out.println();还会有用吗?
System.out.println("123");一样没显示
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式