本帖最后由 李阳 于 2013-3-12 15:02 编辑
- import java.io.*;
- class FileDemo3
- {
- public static void main(String[] args) throws IOException
- {
- File f = new File("d:\\QQ");
- BufferedWriter buff = new BufferedWriter(new FileWriter("in.txt"));
- getFile(f,buff,0);
-
- }
- public static String getLevel(int level)
- {
- StringBuilder sb = new StringBuilder();
-
- for (int x=0;x<=level;x++ )
- {
- if (x==level)
- {
- sb.append("|--");
- }
- else
- sb.append(" ");
- }
- return sb.toString();
- }
- public static void getFile(File f,BufferedWriter buff,int level) throws IOException
- {
- //执行做法1代码,做法2代码注释掉,效果请看效果1
- buff.write(getLevel(level)+f.toString());
- buff.newLine();
- buff.flush();
- level++;
- //PrintStream pm = System.out;
- //BufferedWriter bufw = new BufferedWriter(new OutputStreamWriter(pm));
- File[] files = f.listFiles();
- for (File fs:files )
- {
- if (fs.isDirectory())
- {
- /*
- //使用做法2,请看效果2.把做法1的代码注释掉,
- buff.write(getLevel(level)+f.toString());
- buff.newLine();
- buff.flush();
- */
- getFile(fs,buff,level);
- }
- else
- {
-
- //bufw.write(fs.toString());
- buff.write(getLevel(level)+fs.toString());
- buff.newLine();
- //bufw.newLine();
- //bufw.flush();
- buff.flush();
- }
- }
- }
- }
复制代码 扫描QQ文件夹下的所有文件,并保存在文件中。代码无误。
为神马做法2比做法1少文件呢?
做法1效果图- |--d:\QQ
- |--d:\QQ\af.xml.txd
- |--d:\QQ\app.xml.txd
- |--d:\QQ\AuI18N
- |--d:\QQ\AuI18N\2052
- |--d:\QQ\AuI18N\2052\StringBundle.xml
- |--d:\QQ\AuI18N\config.xml
- |--d:\QQ\Bin
复制代码 下面是效果2- |--d:\QQ\af.xml.txd
- |--d:\QQ\app.xml.txd
- |--d:\QQ
- |--d:\QQ\AuI18N
- |--d:\QQ\AuI18N\2052\StringBundle.xml
- ------少了一个文件夹d:\QQ\AuI18N\2052--------
- |--d:\QQ\AuI18N\config.xml
- |--d:\QQ
- |--d:\QQ\Bin\ABL.sys
复制代码 |