Java文件操作大全(七)

45.验证Schema
//import java.io.*;
//import javax.xml.parsers.*;
//import org.xml.sax.*;
//import org.w3c.dom.*;
String xsdFileName = /"Q:_dev_stuxsdtestsrcnote.xsd/"; 
try { 
//创建默认的XML错误处理器 
XMLErrorHandler errorHandler = new XMLErrorHandler(); 
//获取基于 SAX 的解析器的实例 
SAXParserFactory factory = SAXParserFactory.newInstance(); 
//解析器在解析时验证 XML 内容。 
factory.setValidating(true); 
//指定由此代码生成的解析器将提供对 XML 名称空间的支持。 
factory.setNamespaceAware(true); 
//使用当前配置的工厂参数创建 SAXParser 的一个新实例。 
SAXParser parser = factory.newSAXParser(); 
//创建一个读取工具 
SAXReader xmlReader = new SAXReader(); 
//获取要校验xml文档实例 
Document xmlDocument = (Document) xmlReader.read(new File(xmlFileName)); 
//设置 XMLReader 的基础实现中的特定属性。核心功能和属性列表可以在 [url]http://sax.sourceforge.net/?selected=get-set[/url] 中找到。 
parser.setProperty(
/"http://java.sun.com/xml/jaxp/properties/schemaLanguage", 
/"http://www.w3.org/2001/XMLSchema"); 
parser.setProperty( 
/"http://java.sun.com/xml/jaxp/properties/schemaSource", 
/"file:/" + xsdFileName); 
//创建一个SAXValidator校验工具,并设置校验工具的属性 
SAXValidator validator = new SAXValidator(parser.getXMLReader()); 
//设置校验工具的错误处理器,当发生错误时,可以从处理器对象中得到错误信息。 
validator.setErrorHandler(errorHandler); 
//校验 
validator.validate(xmlDocument); 
XMLWriter writer = new XMLWriter(OutputFormat.createPrettyPrint()); 
//如果错误信息不为空,说明校验失败,打印错误信息 
if (errorHandler.getErrors().hasContent()) { 
 System.out.println(/"XML文件通过XSD文件校验失败!/"); 
 writer.write(errorHandler.getErrors()); 
} else { 
 System.out.println(/"Good! XML文件通过XSD文件校验成功!/"); 

} catch (Exception ex) { 
System.out.println(/"XML文件: /" + xmlFileName + /" 通过XSD文件:/" + xsdFileName + /"检验失败。/n原因: /" + ex.getMessage 

()); 
ex.printStackTrace(); 

 }
46.Grep
//import java.util.regex.*; 
//import java.io.*; 
/** 
* Simple implementation of the ubiquitous grep command. 
* First argument is the regular expression to search for (remember to 
* quote and/or escape as appropriate). All following arguments are 
* filenames to read and search for the regular expression. 

* Created: April, 2002 
* @author Ron Hitchens (ron@ronsoft.com) 
* @version $Id: SimpleGrep.java,v 1.1 2002/05/07 02:21:08 ron Exp $ 
*/ 
public static void main (String [] argv) 
throws Exception 

if (argv.length < 2) { // 如果参数行没有输入参数,结束程序 
System.out.println ("Usage: regex file [ ... ]"); 
return; 

Pattern pattern = Pattern.compile (argv [0]); // 第一个参数为需要匹配的字符串 
Matcher matcher = pattern.matcher (""); 
// 一次读取各个文件 
for (int i = 1; i < argv.length; i++) { 
String file = argv [i]; // 第2个参数开始,均为文件名。 
BufferedReader br = null; 
String line; 
try { 
br = new BufferedReader (new FileReader (file)); // 打开文件 
} catch (IOException e) { 
// 没有打开文件,则产生异常 
System.err.println ("Cannot read '" + file 
+ "': " + e.getMessage()); 
continue; 
}
while ((line = br.readLine()) != null) { // 读入一行,直到文件结束 
matcher.reset (line); // 匹配字符串 
if (matcher.find()) { // 如果有匹配的字符串,则输出 
System.out.println (file + ": " + line); 


br.close(); // 关闭文件
}
}
47.直接创建多级目录
//import java.io.*; 
File f=new File(%%1);
f.mkdirs();
48.批量重命名
//import java.io.*;
File target = new File("%%1");
String[] files = target.list();
File f = null;
String filename = null;
for (String file : files) {
f = new File(fl, file);
filename = f.getName();
if (filename.substring(filename.lastIndexOf

(".")).equalsIgnoreCase(
"%%2")) {
f.renameTo(new File(target.getAbsolutePath(), 

filename.replace(
"%%2", "%%3")));
// 这里可以反复使用replace替换,当然也可以使用正则表达式来

替换了 ".txt" ".bat"
}
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值