黑马程序员技术交流社区

标题: io流读取文件 [打印本页]

作者: 朱吕龙    时间: 2015-6-6 21:35
标题: io流读取文件

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呢?
望大神和老师看到帮忙解决。
作者: 银哥    时间: 2015-6-6 23:12
System.out.print(new String(chs,0,len));
相当于 String s=new String(chs,0,len);
           System.out.print(s);
所以要带new
作者: q757571446    时间: 2015-6-6 23:33
这么高深,我竟无言以对。顺便说下,能送个分给我吗
作者: langxiao505    时间: 2015-6-6 23:41
这块有点难,
作者: 少年闰土    时间: 2015-6-7 00:34
String()函数是一个构造函数,而构造函数在什么使用呢?在创建对象的时候用吧!那怎么创建对象呢?new 构造函数()这种形式吧,所以new String(chs,0,len)就是创建了一个对象,这里特殊的时候这个没有把这个对象显式的赋值给引用,不过它还是传给了System.out.println函数作实参了,不知道有没有说清楚呢?




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2