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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 程宏志 中级黑马   /  2012-8-3 17:37  /  1180 人查看  /  3 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

import java.io.*;
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)中写入到文本中也没
问题,控制台输出显示和在文本中的写入显示,有什么区别呢?产生问题的原因是什么呢?(控制台上说是找不到符号 不理解)请高手帮忙解答!谢谢!

3 个回复

正序浏览
你把一些东西搞混乱了,System.out返回值是一个PrintStream对象。println是PrintStream类下面的方法。没有你说的那个参数形式的方法。
而FileWriter类下面的write()方法是可以一个重载的方法的,write(char[] ch,int begen,int end)这样的一个方法。
FileReader类也有个类似的,反向的方法,read(),write是写入文件,read是读取文件,read(char[] ch,int begen,int end)从文件中读取指定长度的字符串到数组
回复 使用道具 举报
格式错误
回复 使用道具 举报
(ch,0,num)是String中的    所以要想显示要转成String类型   
String str = null;
str=new String(ch,0,num);
System.out.println(str);
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马