`

目录下所有文本内容替换

阅读更多
项目中所有JSP文件编码要从gb2312替换为gbk,写了个方法,记录一下备用

		replace(new File("E:\\java_workspace\\tttt\\WebRoot"), new String[]{"jsp", "html"}, new String[]{"gb2312", "GB2312"}, "GBK");

	/**
	 * 替换文件路径下所有满足条件的文件中的某些字符串
	 * @param path
	 * @param fileNameSurffix
	 * @param toReplace
	 * @param src
	 */
	public static void replace(
			File folder, final String[] fileNameSurffixes, 
			String[] oldChars, String newChar) {
		File[] subFiles = folder.listFiles(new FilenameFilter() {
			@Override
			public boolean accept(File dir, String name) {
				if(new File(dir + File.separator + name).isDirectory()) {
					return true;
				}
				
				if(fileNameSurffixes == null || fileNameSurffixes.length == 0) {
					return true;
				}
				
				for(String surf : fileNameSurffixes) {
					if(name.endsWith("." + surf)) {
						return true;
					}
				}

				return false;
			}
		});
		
		if(subFiles == null || subFiles.length == 0) {
			return;
		}
		
		for(File f : subFiles) {
			if(f.isFile()) {
				if(!f.canRead() || !f.canWrite()) {
					System.err.println("【不能修改】" + f.getAbsolutePath());
					continue;
				}
				
				Scanner in = null;
				StringBuffer content = new StringBuffer("");
				String line = "";
				boolean found = false;
				try { //读取并替换内容到content
					in = new Scanner(f);
					while(in.hasNextLine()) {
						line = in.nextLine();
						
						for(String oldChar : oldChars) {
							if(line.contains(oldChar)) {
								found = true;
								line = line.replace(oldChar, newChar);
							}
						}
						
						content.append(line);
						content.append("\r\n");
					}

					System.out.println("【读取】" + f.getAbsolutePath());
				} catch(Exception e) {
					System.err.println("【读取失败】" + f.getAbsolutePath());
					e.printStackTrace();
				} finally {
					if(in != null) {
						in.close();
					}
				}
				
				if(found) {
					PrintWriter out = null;
					try {
						out = new PrintWriter(new FileOutputStream(f, false));
						out.write(content.toString());
						out.flush();
						
						System.out.println("【替换】" + f.getAbsolutePath());
					} catch (Exception e) {
						System.err.println("【替换失败】" + f.getAbsolutePath());
						e.printStackTrace();
					} finally {
						if(out != null) {
							out.close();
						}
					}
				} else {
					System.out.println("【跳过】" + f.getAbsolutePath());
				}
			} else {
				replace(f, fileNameSurffixes, oldChars, newChar);
			}
		}
	}
分享到:
评论

相关推荐

    文本内容替换工具批量替换

    批量修改替换文本内容, 可以将一个文件夹下的所有文本一次批量修替换内容,可以批量自动查找多个文本里的要替换的内容进行替换,小巧方便。

    易语言文本批量替换工具

    1. **开始处理**:这是工具启动批量替换操作的入口,用户通过点击此功能,设置好搜索条件和替换规则后,工具将开始对指定目录下的所有文本文件进行处理。 2. **子程序搜索文件**:这是一个内部的易语言子程序,负责...

    TXT文本批量替换内容软件.exe

    纯文本批量替换是一款非常专业且优秀的TXT文本替换工具,它能够轻松的帮助用户将TXT文本内容进行替换,可同时替换多个TXT文件到相同或不同的内容,支持批量替换。

    C# 文本内容批量替换

    `Directory.GetFiles`方法可以获取指定目录下的所有文件,然后对每个文件进行上述的替换操作。 在【文件批量替换.sln】中,这通常是一个Visual Studio解决方案文件,包含了一个或多个项目,用于实现批量替换功能的...

    为多个文本文件做内容批量替换

    当我们的文本里有些相同的文本内容要替换成其他内容时,可以运用到“文本替换”功能,这一功能在诸多的文本编辑软件里都有,并不算稀奇。但是,如果你有多个文件,想要同时替换它们里面的一些相同内容,显然不是其...

    最好用的批量文本查找替换工具

    在文本查找替换中,这意味着用户可以指定一个目录,工具会自动遍历目录下的所有文本文件,执行查找和替换操作,节省了大量的手动操作时间。 2. **文本查找** - 在大量文本中查找特定的字符串或模式是文本处理的基础...

    文件字符替换器 [批量替换目录下所有文本类型数据]

    文件字符替换器是一款高效实用的工具,主要用于在指定目录下批量替换所有文本文件中的特定字符。这个工具在处理大量文本数据时,极大地提高了工作效率,尤其适用于程序员、文档编辑者或需要进行大规模文本处理的用户...

    XML文件,批量进行替换文本内容

    2、可以支持文本替换,就是说,只要匹配其中的内容,就可以实现一键将原本的文本内容或者节点的内容,替换成需要替换的内容 可扩展的功能: 1、可以修改代码,将XML文件,替换成txt文件,或者其余类型的文件,都可以...

    同目录下文件的内容替换

    1.10版升级功能:可以将目录下所有文件名改为大写或者小写。...比如目录下有十个文件,每个里面都有“你好”这个内容,如果要将所有的“你好”都换成“您好”,就可以用此软件直接做到,而不必一个一个文件打开来替换。

    文本文档内容搜索批量替换工具

    “文档替换”则意味着这个工具不仅限于单个文件,而是可以处理整个目录或者一批选定的文件,进行大规模的文本替换操作。 在压缩包中,有一个名为`SR32.exe`的文件。根据一般命名惯例,`SR32`可能代表“Search and ...

    文本替换专家文本替换工具.rar

    该工具的核心功能是查找和替换,它支持在多个文件或整个目录中同时进行文本替换操作。用户可以自定义要搜索的文本、替换后的文本以及需要处理的文件类型。这样,无论是简单的字符替换,还是复杂的正则表达式匹配,...

    批量文本文件内容替换工具

    (此软件已有更新 请下载(批量文本文件内容替换工具(第3版))

    文本文件批量替换工具

    该工具的核心功能是进行文本替换,可以针对指定目录下的所有文本文件进行批量替换操作。用户只需要设置好查找和替换的字符串,工具便会遍历指定路径下的所有文件,将匹配到的旧内容替换为新内容。这对于程序员、网站...

    wenbenTHZJ_文本替换专家_文本替换_

    文本替换专家就解决了这一问题,它可以一次性处理整个文件夹下的所有文本文件,实现全局性的文本替换。 该软件可能包含以下特性: 1. **批量处理**:支持对指定目录下的所有文本文件进行批量替换操作,无需逐个...

    易语言数组文本替换

    在易语言中,“数组”是存储多个相同类型数据的集合,而“文本替换”则是处理字符串时常见的操作,用于在文本中查找特定的字符串并将其替换为新的内容。本篇将详细解析易语言数组文本替换的实现原理及应用。 一、...

    超级批量文本替换,可以快速查询,替换内容

    "超级批量文本替换"工具正是针对这一需求而设计的,它能够高效地处理大量文本数据,快速查找并替换特定内容。这样的工具对于提高工作效率、减少手动操作的错误具有重要意义。 批量文本替换的基本原理是通过算法遍历...

    文本替换专家 v2.5

    文本替换专家 v2.5 是一款专为处理大量文本数据而设计的应用程序,它能够高效地在多个文件中查找并替换特定的文本内容。这款工具对于程序员、文档编辑者、网站管理员以及任何需要批量修改文本内容的人来说,都是一款...

    文本批量替换工具

    文本批量替换工具,可批量替换某一目录下所有文件中的某个文本

    replacewith替换文本内容

    《锋利的jquery》利用replacewith替换文本内容

    CAD批量文本替换程序

    标题“CAD批量文本替换程序”指的是一个专门设计用于AutoCAD环境下的工具,它利用VBA(Visual Basic for Applications)编程语言来实现批量处理CAD文件中的文本替换功能。这个程序允许用户一次性替换多个CAD文件中...

Global site tag (gtag.js) - Google Analytics