首页 > 编程语言 > 详细

【深入JAVA】Java中文件操作

时间:2015-04-16 12:29:56      阅读:216      评论:0      收藏:0      [点我收藏+]

在阅读的过程中有任何问题,欢迎一起交流

邮箱:1494713801@qq.com   

QQ:1494713801

 

1、在指定目录下创建文件夹及文件,并写入初始内容

    File file = new File("filePath");
    File pf = file.getParentFile();
    if(!pf.exists()){
      pf.mkdirs();//创建文件夹
    }
    if(!file.exists()){
     file.createNewFile();//创建新文件
    }
    FileWriter fw = new FileWriter(file);
    PrintWriter pw = new PrintWriter(fw);
    pw.append("this is a new file");//写入初始文本内容
    pw.flush();
    pw.close();

 

2、修改文件中指定行的内容

     File file = new File("file路径");
     BufferedReader reader = null;
     try {
             reader = new BufferedReader(new FileReader(file));
             String tempString = "";
             String bufferstr="";
             while ((tempString = reader.readLine()) != null) {
               try {
                  tempString.getBytes("utf-8");
                  if(tempString.startsWith("dburl=")){
                      bufferstr+="替换为新内容"+"\n";
                  }else{
                      bufferstr+=tempString+"\n";
                 }
               } catch (UnsupportedEncodingException e1) {
                 e1.printStackTrace();
               }
          }
          reader.close();
          BufferedWriter writer=new BufferedWriter(new FileWriter(file));
          writer.write(bufferstr);
          writer.close();
      } catch (Exception e) {
         e.printStackTrace();
      }finally {
           if (reader != null) {
               try {
                     reader.close();
               } catch (IOException e1) {
               }
           }
      }

 

3、在当前目录下查找其下及所有子文件夹中的包含et.txt字符的文件路径

    public static File[] searchFile(File folder, final String keyWord) {// 递归查找包含关键字的文件
        
        File[] subFolders = folder.listFiles(new FileFilter() {// 运用内部匿名类获得文件
                    public boolean accept(File pathname) {// 实现FileFilter类的accept方法
                        if (pathname.isDirectory() || (pathname.isFile() && pathname.getName().toLowerCase()
                          .equals(keyWord.toLowerCase())))// 目录或文件包含关键字
                            return true;
                        return false;
                    }
                });
        
        List result = new ArrayList();// 声明一个集合
        for (int i = 0; i < subFolders.length; i++) {// 循环显示文件夹或文件
            if (subFolders[i].isFile()) {// 如果是文件则将文件添加到结果列表中
                result.add(subFolders[i]);
            } else {// 如果是文件夹,则递归调用本方法,然后把所有的文件加到结果列表中
                File[] foldResult = searchFile(subFolders[i], keyWord);
                for (int j = 0; j < foldResult.length; j++) {// 循环显示文件
                    result.add(foldResult[j]);// 文件保存到集合中
                }
            }
        }
        
        File files[] = new File[result.size()];// 声明文件数组,长度为集合的长度
        result.toArray(files);// 集合数组化
        return files;
    }

 

参考链接:http://dict.xsoftlab.net/dict/java-find

http://zhidao.baidu.com/link?url=5vnI0uRYDTDcr8SjLULeLpcNhbKtaHCGP5zVQo7KyawswztyL9YxLnXrzxkGTpHWBuyeY4V8fxyGBdMfD57Xgq

【深入JAVA】Java中文件操作

原文:http://blog.csdn.net/u010515761/article/details/45071665

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!