`
hutuanle
  • 浏览: 9609 次
文章分类
社区版块
存档分类
最新评论

android doc文档打开太慢?从此不会了

 
阅读更多
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileFilter;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
import java.util.UUID;

/**
 *  @author hutuanle
 *    doc文档太慢? 把这个类复制为java文件,编译运行即可;
 *    只要修改doc_path为你使用的sdk下的doc路径即可
 *    比如我的doc路径为doc_path = "D:\\android_tools\\android-sdk_r20.0.3-windows\\android-sdk-windows\\docs"
 *    我是修改下了别人大牛的代码 去掉了 ANDROID_SDK_HOME配置的繁琐, 因为有时候配置无效;
 */
public class AndroidDoc {

    private static final String TAG = "<script src=\"http://www.google.com/jsapi\" type=\"text/javascript\"></script>";
    //修改下边这个doc_path为自己使用的sdk doc路径
    private static String doc_path = "D:\\android_tools\\android-sdk_r20.0.3-windows\\android-sdk-windows\\docs";

    public static void main(String[] args) {
        File docs = new File(doc_path);
        System.out.println("It will take several minutes, please wait...");
        traverse(docs);
        System.out.println("it is done... you can open the index.html faster!");
    }

    /**
     * 遍历Android SDK安装目录下的docs目录
     * 
     * @param dir
     */
    private static void traverse(File dir) {
        if (dir.isDirectory()) {
            File[] files = dir.listFiles(new FileFilter() {

                @Override
                public boolean accept(File file) {
                    if (file.isFile() && file.getName().endsWith(".html")) {
                        BufferedReader reader = null;
                        try {
                            reader = new BufferedReader(new FileReader(file));
                            String buffer;
                            while ((buffer = reader.readLine()) != null) {
                                if (buffer.trim().equalsIgnoreCase(TAG)) {
                                    return true;
                                }
                            }
                        } catch (Exception e) {
                            e.printStackTrace();
                        } finally {
                            try {
                                reader.close();
                            } catch (IOException e) {
                                e.printStackTrace();
                            }
                        }
                    } else if (file.isDirectory()) {
                        return true;
                    }
                    return false;
                }
            });
            for (File file : files) {
                if (file.isDirectory()) {
                    System.out.println("Scanning Folder:"
                            + file.getAbsolutePath());
                    traverse(file);
                } else {
                    doChange(file);
                }
            }
        }
    }

    /**
     * 注释html中的某行Javascript代码
     * 
     * @param file
     * @return
     */
    private static boolean doChange(File file) {
        System.out.println("Extracting File:" + file.getAbsolutePath() + "...");
        String desPath = file.getParent() + "\\" + UUID.randomUUID().toString()
                + ".html";
        File des = new File(desPath);
        BufferedReader reader = null;
        BufferedWriter writer = null;
        try {
            des.createNewFile();
            reader = new BufferedReader(new FileReader(file));
            writer = new BufferedWriter(new FileWriter(des));
            String buffer;
            while ((buffer = reader.readLine()) != null) {
                if (buffer.trim().equalsIgnoreCase(TAG)) {
                    buffer = "<!--" + TAG + "-->";
                }
                writer.write(buffer + "\n");
                writer.flush();
            }
            return true;
        } catch (FileNotFoundException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        } finally {
            try {
                reader.close();
                writer.close();
                file.delete();
                des.renameTo(file);
            } catch (IOException e) {
                e.printStackTrace();
            }
        }
        return false;
    }

}

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics