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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 高阳 中级黑马   /  2013-1-4 22:04  /  1165 人查看  /  3 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文


class Test_3
{
public static void main(String[] args) throws IOException
{
FileReader fr=new FileReader("Test_3.java");
char[] ch=new char[1024];
int num=0;
while ((num=fr.read(ch))!=-1)
{
System.out.println(ch);
}
fr.close();
}
}
这句话 System.out.println(ch)是在控制台输出的,若是改成System.out.println(ch,0,num);之后为什么出现问题呢。在FileWriter().write(ch,0,num)中写入到文本中也没
问题,控制台输出显示和在文本中的写入显示,有什么区别呢?是什么原因

评分

参与人数 1技术分 +1 收起 理由
邵天强 + 1

查看全部评分

3 个回复

倒序浏览
本帖最后由 修心者 于 2013-1-5 00:03 编辑

System.out.println(ch,0,num); //错误
System是系统级的一个类,它的内部封闭了系统的信息。
在它的内部有个静态字段out,当使用此字段时,即System.out,
它会返回IO包中的打印流(PrintStream)类的一个对象,那么就可以调用该类的println方法,
查看Javadoc可以知道,该方法没有你程序中传入的参数格式,当然会出错。
在java体系中,提供了四个对文件操作的基类,
字符流Writer,Reader,
字节流OutputStream,InputStream.
FileWriter继承Writer类,它主要是针对文件来操作的,

评分

参与人数 1技术分 +1 收起 理由
邵天强 + 1

查看全部评分

回复 使用道具 举报
修心者 发表于 2013-1-4 23:31
System.out.println(ch,0,num); //错误
System是系统级的一个类,它的内部封闭了系统的信息。
在它的内部有 ...

打印流如果是使用数组的话也需要传递长度啊
回复 使用道具 举报
呵呵,上网查下资料吧,个人觉得要是在工作中很少用到的话,不用了解这么深入。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马