UpdateFile.java(更新指定文件夹的文件)作者:阿飞

此博客展示了一个Java程序,用于遍历指定目录下的所有文件和文件夹。若遇到ASP文件,会读取其内容,处理其中包含特定框架的行,最后将处理后的内容写入新文件。程序包含文件搜索、内容读取和新文件生成等功能。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

/*
 * 创建日期 2004-12-14
 *
 * TODO 要更改此生成的文件的模板,请转至
 * 窗口 - 首选项 - Java - 代码样式 - 代码模板
 */
package net.selfcafe;

import java.io.*;
/**
 * @author Administrator
 *
 * TODO 要更改此生成的类型注释的模板,请转至
 * 窗口 - 首选项 - Java - 代码样式 - 代码模板
 */
public class  UpdateFile
{
 
 //遍历整个文件加
 public  static void SearchAllDec(String path) {
  
  int size;
  String subpath="";
  
  File newfile = new File(path);

  if (newfile.isDirectory()) {

   //System.out.println(newfile.getName());
   String filelist[] = newfile.list();
   size = filelist.length;
   for (int i = 0; i < size; i++) {
    subpath = path + "/" + filelist[i];
    SearchAllDec(subpath);
   }
  } else if (newfile.isFile()) {
   
   //得到文件路径
   String strFilePath = newfile.getAbsolutePath();
   String strFileContent = "";
   String strFileName = newfile.getName();
   String strFileExt = strFileName.substring( strFileName.length()-3,strFileName.length() );
   //如果是asp文件,得到文件中的内容
     
   strFileContent = getStrFromFile(strFilePath);
       
   if (strFileExt.equals("asp")){
    
    MakeNewFile(path,strFileName,strFileContent); 
   }
   
   
  } else {
   System.out.println("no such file or directory");
  }

  
 }
 
 /*
  *
  * 得到文件的内容
  * */
 public static String  getStrFromFile(String strFileNameAndPath)
    {
     
  BufferedReader br= null;
   
  StringBuffer s=new StringBuffer();
  String line = "";
  int iLineCount = 0;
  int iSum = 0;
  try{
   br = new BufferedReader(new FileReader(strFileNameAndPath));
   iLineCount = 0;
   
   while( (line=br.readLine())!=null)
   {
     //处理页面如果,如果包含框架的去掉    
    iLineCount ++;
    String strResult;   //临时字符串
    //boolean iChangeFlag = false;//保证成对出现
    strResult = "<iframe src=/"/ini/top.asp?pid=<%=pid%>/" frameborder=/"0/" scrolling=/"no/" width=/"778/" height=/"145/">";
     if (line.indexOf(strResult)>-1)
     {
      System.out.println("Line:"+ iLineCount);
      System.out.println(line);
      iSum++;
      line = "<td>/n";
      
    
     }
       strResult = "</iframe></td>";
       if (line.indexOf(strResult)>-1)
      {
        System.out.println("Line:"+ iLineCount);
       System.out.println(line);
       line = "</td>/n";
      }    
     s.append(line);
     s.append("/n");
   }
   System.out.print(iSum+ "");
   
  }catch(Exception e){
   
  }
  
  

      String result = new String(s);
      result = result.trim();     
     return result;
    }
 /*
  *  ==生成新的页面
  *
  * */
  
 public static boolean MakeNewFile(String strFilePath ,String strFileName,String newsContent){
  File path=null;
  File d=null;
  //System.out.println(strNewsPath);
  try
  {   
    path=new File(strFilePath);
    //System.out.println("1");
   if(!path.exists())
    path.mkdir();
    
    System.out.println(" 文件名称:"+strFilePath);
    //System.out.println(strFileName);
    String  tempStr = strFilePath.trim();
   
   //写入html文件
      FileWriter fw;
     try
     {
                 fw=new FileWriter(tempStr);//建立FileWriter对象,并实例化fw
        //将字符串写入文件
           fw.write(newsContent);
           fw.close();
       }
       catch(Exception e)
          {
         e.printStackTrace();
             }
    
  }catch(Exception e){
   System.err.println(e);
   e.printStackTrace();
   return false;
  }finally{
   path=null;
   d=null;
  }
  
  return true;
 }
 
 public static void main(String[] args)
 {
  SearchAllDec("h:/test");
  
 }
}

 

Unable to start the daemon process. This problem might be caused by incorrect configuration of the daemon. For example, an unrecognized jvm option is used. Please refer to the User Manual chapter on the daemon at https://docs.gradle.org/7.5/userguide/gradle_daemon.html Process command line: E:\AS2023\jbr\bin\java.exe --add-opens java.base/java.util=ALL-UNNAMED --add-opens java.base/java.lang=ALL-UNNAMED --add-opens java.base/java.lang.invoke=ALL-UNNAMED --add-opens java.base/java.util=ALL-UNNAMED --add-opens java.prefs/java.util.prefs=ALL-UNNAMED --add-opens java.prefs/java.util.prefs=ALL-UNNAMED --add-opens java.base/java.nio.charset=ALL-UNNAMED --add-opens java.base/java.net=ALL-UNNAMED --add-opens java.base/java.util.concurrent.atomic=ALL-UNNAMED -Xmx8192M -Dfile.encoding=UTF-8 -Duser.country=CN -Duser.language=zh -Duser.variant -cp C:\Users\Chen Ting\.gradle\wrapper\dists\gradle-7.5-all\dwa490h3ro6flroizg9zas0ro\gradle-7.5\lib\gradle-launcher-7.5.jar org.gradle.launcher.daemon.bootstrap.GradleDaemon 7.5 Please read the following process output to find out more: ----------------------- FAILURE: Build failed with an exception. * What went wrong: java.net.BindException: Address already in use: bind * Try: > Run with --info or --debug option to get more log output. > Run with --scan to get full insights. * Exception is: org.gradle.api.UncheckedIOException: java.net.BindException: Address already in use: bind at org.gradle.internal.UncheckedException.throwAsUncheckedException(UncheckedException.java:62) at org.gradle.internal.UncheckedException.throwAsUncheckedException(UncheckedException.java:41) at org.gradle.cache.internal.locklistener.FileLockCommunicator.<init>(FileLockCommunicator.java:51) at org.gradle.cache.internal.locklistener.DefaultFileLockContentionHandler.getCommunicator(DefaultFileLockContentionHandler.java:263) at org.gradle.cache.internal.locklistener.DefaultFileLockContentionHandler.reservePort(DefaultFileLockContentionHandler.java:255) at org.gradle.cache.internal.DefaultFileLockManager.lock(DefaultFileLockManager.java:109) at org.gradle.cache.internal.DefaultFileLockManager.lock(DefaultFileLockManager.java:96) at org.gradle.cache.internal.DefaultFileLockManager.lock(DefaultFileLockManager.java:91) at org.gradle.cache.internal.OnDemandFileAccess.updateFile(OnDemandFileAccess.java:51) at org.gradle.cache.internal.SimpleStateCache.update(SimpleStateCache.java:87) at org.gradle.cache.internal.FileIntegrityViolationSuppressingPersistentStateCacheDecorator$1.create(FileIntegrityViolationSuppressingPersistentStateCacheDecorator.java:50) at org.gradle.cache.internal.FileIntegrityViolationSuppressingPersistentStateCacheDecorator.doUpdate(FileIntegrityViolationSuppressingPersistentStateCacheDecorator.java:67) at org.gradle.cache.internal.FileIntegrityViolationSuppressingPersistentStateCacheDecorator.update(FileIntegrityViolationSuppressingPersistentStateCacheDecorator.java:47) at org.gradle.launcher.daemon.registry.PersistentDaemonRegistry.store(PersistentDaemonRegistry.java:232) at org.gradle.launcher.daemon.server.DaemonRegistryUpdater.onStart(DaemonRegistryUpdater.java:80) at org.gradle.launcher.daemon.server.Daemon.start(Daemon.java:171) at org.gradle.launcher.daemon.bootstrap.DaemonMain.doAction(DaemonMain.java:125) at org.gradle.launcher.bootstrap.EntryPoint.run(EntryPoint.java:50) at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77) at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.base/java.lang.reflect.Method.invoke(Method.java:568) at org.gradle.launcher.bootstrap.ProcessBootstrap.runNoExit(ProcessBootstrap.java:60) at org.gradle.launcher.bootstrap.ProcessBootstrap.run(ProcessBootstrap.java:37) at org.gradle.launcher.daemon.bootstrap.GradleDaemon.main(GradleDaemon.java:22) Caused by: java.net.BindException: Address already in use: bind at java.base/sun.nio.ch.Net.bind0(Native Method) at java.base/sun.nio.ch.Net.bind(Net.java:555) at java.base/sun.nio.ch.DatagramChannelImpl.bindInternal(DatagramChannelImpl.java:1194) at java.base/sun.nio.ch.DatagramChannelImpl.bind(DatagramChannelImpl.java:1164) at java.base/sun.nio.ch.DatagramSocketAdaptor.bind(DatagramSocketAdaptor.java:107) at java.base/java.net.DatagramSocket.createDelegate(DatagramSocket.java:1426) at java.base/java.net.DatagramSocket.<init>(DatagramSocket.java:330) at java.base/java.net.DatagramSocket.<init>(DatagramSocket.java:389) at org.gradle.cache.internal.locklistener.FileLockCommunicator.<init>(FileLockCommunicator.java:49) ... 22 more * Get more help at https://help.gradle.org ----------------------- Check the JVM arguments defined for the gradle process in: - gradle.properties in project root directory 报错分析
07-26
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值