45.驗證Schema
//import java.io.*;
//import javax.xml.parsers.*;
//import org.xml.sax.*;
//import org.w3c.dom.*;
String xsdFileName = /"Q:////_dev_stu////xsdtest////src////note.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 ([email protected])
* @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"
}
}
Java文件操作大全(七)
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.