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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 杜佳瑞 中级黑马   /  2012-8-10 22:02  /  1309 人查看  /  5 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

在第21天视频最后一小节的练习中有这么一个问题,就是写入总成绩时候开始有个小问题,后来老师在成绩后面加上一个空串把数字转成了字符串,也就是这里面必须写入的是字符串吗?下面是改的小例子验证了一下,确实是这个问题,视频中老师也没解释一下为什么,有明白人帮个忙不
import java.io.*;
class Demo
{
        public static void main(String[] args) throws Exception
        {
                FileWriter w=new FileWriter("a.txt");
                w.write("abc");
                w.write(32);//32+"",就Ok               
                               w.close();
        }
}

5 个回复

倒序浏览
因为writer类没提供写入int类型的方法,所以要转换下成String类型,要想直接写入int类型,有专门的类。
回复 使用道具 举报
朱烈葵 发表于 2012-8-10 22:12
因为writer类没提供写入int类型的方法,所以要转换下成String类型,要想直接写入int类型,有专门的类。 ...


API有这个方法,我知道这是字符型的向上转型了,难道这不能传整形吗
回复 使用道具 举报
杜佳瑞 发表于 2012-8-10 22:23
API有这个方法,我知道这是字符型的向上转型了,难道这不能传整形吗

这是字符啊,不是int啊
回复 使用道具 举报
朱烈葵 发表于 2012-8-10 22:38
这是字符啊,不是int啊

喔好吧谢谢
回复 使用道具 举报
w.write(32);
这里的 32 代表的是字符对应的unicode码,这里采用低16位,我估计是采用unicode-16编码字符的,为了读写编码较长的语言字符,两个字节为一个字符。至于下面这种情况,就没必要,直接调用write(String)就好了。 注意,你如果这样调用write(3),是往里面写入unicode 3所代表的字符。要写入数字3,需要write("3"),所以通常FileWriter是把要写的内容专成String类型的。
如果,你硬是要用write(int),就要知道字符串中美个字符的unicode码,然后按字符串长度循环write(unicode码)。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马