鱼C论坛

 找回密码
 立即注册
查看: 2606|回复: 2

[已解决]java这样按要求写的对吗,写完了我自己也很蒙,不太懂;

[复制链接]
发表于 2018-1-30 16:01:25 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
一开始我再                BufferedWriter bw = new BufferedWriter(new FileWriter("c:\\change\\pop.txt"));这行后面加了个true,因为怕递归会把文件覆盖掉,不对,把true去掉就对了?为啥啊

package com.xiapeixin;
import java.io.*;
import java.util.*;
public class Test99
{//1:要求对指定目录进行递归;2:获取所有.java文件;3:存储到集合中;4:写入到文件中;
        public static void main(String[] args) throws Throwable
        {
                File file = new File("D:\\ZTesting\\");
                TreeSet<File> alf = new TreeSet<File>(new MyC());
                getJava(file,alf);
        }
        static void getJava(File dir,TreeSet<File> af) throws IOException
        {
                File [] fs = dir.listFiles();
                for (File f:fs)
                {
                        if (f.isDirectory())
                        {
                                getJava(f,af);
                        }
                        else if (f.getName().endsWith(".java"))
                        {
                                af.add(f);
                        }
                }
                BufferedWriter bw = new BufferedWriter(new FileWriter("c:\\change\\pop.txt"));
               
                for (Iterator <File> i =af.iterator();i.hasNext();)
                {
                        File fo = i.next();
                        bw.write(fo.getAbsolutePath());
                        bw.newLine();
                }
                bw.close();
        }
}
class MyC implements Comparator<File>
{
        @Override
        public int compare(File o1, File o2)
        {               
                return o1.getAbsolutePath().compareTo(o2.getAbsolutePath());
        }
       
}
最佳答案
2018-2-1 11:30:49

BufferedWriter bw = new BufferedWriter(new FileWriter("c:\\change\\pop.txt",true));
这行代码的意思是在pop.txt文件上追加内容,不会覆盖之前的内容。可以使用下面的代码试试:

static void getJava(File dir,TreeSet<File> af) throws IOException
        {
                File [] fs = dir.listFiles();
                for (File f:fs)
                {
                        if (f.isDirectory())
                        {
                                getJava(f,af);
                        }
                        else if (f.getName().endsWith(".java"))
                        {
                                af.add(f);
                                writerString(File f);
                        }
                }
               
        }

static void writerString(File f)
        {
                 BufferedWriter bw = new BufferedWriter(new FileWriter("c:\\change\\pop.txt",true));
                bw.write(f.getAbsolutePath());
                bw.newLine();
                bw.close();
        }
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2018-2-1 11:30:49 | 显示全部楼层    本楼为最佳答案   

BufferedWriter bw = new BufferedWriter(new FileWriter("c:\\change\\pop.txt",true));
这行代码的意思是在pop.txt文件上追加内容,不会覆盖之前的内容。可以使用下面的代码试试:

static void getJava(File dir,TreeSet<File> af) throws IOException
        {
                File [] fs = dir.listFiles();
                for (File f:fs)
                {
                        if (f.isDirectory())
                        {
                                getJava(f,af);
                        }
                        else if (f.getName().endsWith(".java"))
                        {
                                af.add(f);
                                writerString(File f);
                        }
                }
               
        }

static void writerString(File f)
        {
                 BufferedWriter bw = new BufferedWriter(new FileWriter("c:\\change\\pop.txt",true));
                bw.write(f.getAbsolutePath());
                bw.newLine();
                bw.close();
        }
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2018-2-1 16:19:46 | 显示全部楼层
你的第13是不是改写writerString(f);
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-3-28 22:40

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表