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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 朱吕龙 中级黑马   /  2015-6-6 21:35  /  573 人查看  /  4 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文


package itcast.cn;
/*需求:读取f盘下的code文件夹里的FileDemo.java文件
* 方法一:FileReader fr=new FileReader("f://code//FileDemo.java");
                 int ch=0;
                 while((ch=fr.read())!=-1){
                        System.out.print((char)ch);
        这里用方法二:采用一次读取4个字节。        
*/
import java.io.FileReader;
import java.io.IOException;

public class FileReaderDemo2 {
        public static void main(String[] args) throws IOException {
                // 创建字符输入流
                FileReader fe=new FileReader("f://code//FileDemo.java");
                // 读取数据
               
                char[] chs=new char[4];
                int len=0;
                while((len=fe.read(chs))!=-1){
                        System.out.print(new String(chs,0,len));
                }
                fe.close();
               
        }
}
下面是我的问题:在输出的时候为什么不是输出 String(chs,0,len);我们看到new都是在创建对象的时候用,而这里前面要加个new呢?
望大神和老师看到帮忙解决。

4 个回复

倒序浏览
System.out.print(new String(chs,0,len));
相当于 String s=new String(chs,0,len);
           System.out.print(s);
所以要带new
回复 使用道具 举报
这么高深,我竟无言以对。顺便说下,能送个分给我吗
回复 使用道具 举报
这块有点难,
回复 使用道具 举报
String()函数是一个构造函数,而构造函数在什么使用呢?在创建对象的时候用吧!那怎么创建对象呢?new 构造函数()这种形式吧,所以new String(chs,0,len)就是创建了一个对象,这里特殊的时候这个没有把这个对象显式的赋值给引用,不过它还是传给了System.out.println函数作实参了,不知道有没有说清楚呢?
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马