A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 李龙涛   /  2011-7-25 17:21  /  3155 人查看  /  3 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

首先程序是:
import java.io.*;
public class J_Example  
{
  public static void main(String[] args)
   {
    int b;
    try
     {
       FileOutputStream t=new FileOutputStream("out.txt");
       DataOutputStream f=new DataOutputStream(t);  //DataOutputStream的构造方法必须以OutputStream以及InputStream的实例引用为参数;
       for(b=0;b<5;b++)
           f.writeByte(b+'0');
           f.close();  
     }
    catch(Exception e)
     {
       System.out.println(e);
     }
   }
成员方法:public final void writeByte(int v) throws IOException;
但是 f.writeByte(b+'0')里面的b+'0'是什么意思?
如果理解成整数的话,但是为什么去掉‘0’,写入文件的就是乱码呢?

评分

参与人数 1技术分 +2 收起 理由
admin + 2

查看全部评分

3 个回复

倒序浏览
黑马网友  发表于 2011-7-25 17:58:26
沙发
将一个 byte 值以 1-byte 值形式写出到基础输出流中。如果没有抛出异常,则计数器 written 增加 1。

评分

参与人数 1技术分 +1 收起 理由
admin + 1

查看全部评分

回复 使用道具 举报
黑马网友  发表于 2011-7-26 01:22:45
藤椅
f.writeByte(b+'0')里面的b+'0'是什么意思?

比如第二次循环, b= 1  ,'0' 在ascii 编码里面是48  那么这两个数相加就是49   而49就是1在ascii编码的值、
所以他写到文件的是 这些整数的ascii码 ,反之, reader 方法也一样
回复 使用道具 举报
楼上正解!
'0'是作为字符在ascii码的偏移量使用的
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马