新型汉语编程语言
设计开发中............源代码公开,希望有能力的朋友多提意
package com.hao.grammaticalanalysis.recursivedescent;
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
public class FileUtill {
private String line = null;
private FileReader fileReader;
private FileWriter fileWriter;
private BufferedWriter bufferedWriter;
private BufferedReader bufferedReader;
public static String getCurrentProjectPath(){
String rootPath=FileUtill.class.getResource("/").getFile().toString();
return rootPath.substring(1, rootPath.lastIndexOf("bin"));
}
public static boolean createFile(String path){
try {
File file=new File(path);
if(!file.exists()){
new File(path.substring(0,path.lastIndexOf('\\'))).mkdirs();
file.createNewFile();
}
return true;
} catch (Exception e) {
return false;
}
}
public FileUtill(String path) {
// TODO Auto-generated constructor stub
try {
fileReader=new FileReader(path);
fileWriter=new FileWriter(path);
bufferedWriter=new BufferedWriter(fileWriter);
bufferedReader=new BufferedReader(fileReader);
} catch (Exception e) {
}
}
public boolean writeLine(String line){
try {
bufferedWriter.write(line);
bufferedWriter.newLine() ;
bufferedWriter.flush();
return true;
} catch (IOException e) {
return false;
}
}
public void closeWriter() {
try {
fileWriter.close();
bufferedWriter.close();
} catch (IOException e1) {
}
}
public boolean isHaveNextLine(){
try {
line=bufferedReader.readLine();
} catch (Exception e) {
closeReader();
}
if(line==null){
closeReader();
return false;
}
return true;
}
public String getOneLineBySourceFile(){
return line;
}
private void closeReader() {
try {
fileReader.close();
bufferedReader.close();
} catch (IOException e1) {
}
}
}
package com.hao.grammaticalanalysis.recursivedescent;
import java.io.File;
import javax.xml.namespace.QName;
import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
import javax.xml.xpath.XPathConstants;
import javax.xml.xpath.XPathExpressionException;
import javax.xml.xpath.XPathFactory;
import org.w3c.dom.Document;
import org.w3c.dom.Element;
import org.w3c.dom.Node;
import org.w3c.dom.NodeList;
public class XMLUtill {
Element root;
public XMLUtill(String path) {
// TODO Auto-generated constructor stub
try {
DocumentBuilderFactory factory = DocumentBuilderFactory
.newInstance();
factory.setIgnoringElementContentWhitespace(true);
DocumentBuilder db = factory.newDocumentBuilder();
Document xmldoc = db.parse(new File(path));
root = xmldoc.getDocumentElement();
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
public Node selectSingleNode(String express) {
return (Node) selectElement(express,root,XPathConstants.NODE);
}
public Node selectSingleNode(String express, Element element) {
return (Node) selectElement(express, element,XPathConstants.NODE);
}
public NodeList selectNodes(String express,Element element) {
return (NodeList) selectElement(express, element,XPathConstants.NODESET);
}
public NodeList selectNodes(String express) {
return (NodeList) selectElement(express, root,XPathConstants.NODESET);
}
private Object selectElement(String express, Element element,QName qName) {
try {
return XPathFactory.newInstance().newXPath()
.evaluate(express, element,qName);
} catch (XPathExpressionException e) {
return null;
}
}
}
见