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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 吴亨 黑马帝   /  2012-1-10 19:43  /  1891 人查看  /  3 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 吴亨 于 2012-1-12 15:47 编辑

import java.io.*;
import java.util.*;
class MyJavaList1
{
        public static void main(String[] args) throws Exception
        {
                File dir = new File("D:\\毕老师课件\\代码");
                List<File> list = new ArrayList<File>();
        fileToList(dir,list);
    System.out.println(list.size());
                FileWriter fw = new FileWriter("d:\\index2.txt");
        writeToFile(list,fw);
      fw.close();    //如果此处不关闭流资源,请问可以将内容完整写进index2.txt里吗?
        }

        public static void fileToList(File dir,List<File> list) throws Exception
        {
                File[] files = dir.listFiles();
        for(File file : files)
                {
                        if(file.isDirectory())
                fileToList(file,list);
                        else
                        {
                                if(file.getPath().endsWith(".java"))
                                        list.add(file);
                        }
                }

        }

        public static void writeToFile(List<File> list,FileWriter fw) throws Exception
        {
                int count = 0;
      
        for(File file : list)
                {
            fw.write(file.getPath()+"................"+(++count));
            fw.write('\r');
                              fw.write('\n');
                }
                System.out.println(count);

        }
}

评分

参与人数 1技术分 +1 收起 理由
吴上储 + 1

查看全部评分

3 个回复

正序浏览
先写进内存缓冲,必须刷新FLUSH()才行,CLOSE()关之前自动刷一次所以就写进去了。

评分

参与人数 1技术分 +1 收起 理由
吴上储 + 1

查看全部评分

回复 使用道具 举报
我记得好像有说过,凡是关于字符流的输出,当写进内存的时候,要调用flush()把内存中缓冲的数据传到目地文件。

评分

参与人数 1技术分 +1 收起 理由
吴上储 + 1

查看全部评分

回复 使用道具 举报
写不进去,能写进内存,要想写入文件就得冲刷流或者关闭流。
fw.flush();
fw.close();     关闭的同时也刷新了流。

评分

参与人数 1技术分 +1 收起 理由
吴上储 + 1

查看全部评分

回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马