📄 tokenchecker.java
字号:
/**
* CopyRight team of 02计四
*/
package tokenchecker;
import java.util.*;
import java.io.*;
class TokenChecker{
private SimpleDictionary dictionary;
private TreeMap map;
private boolean ignore;
private String currentFile = "";
private String createdDictionaryName;
public TokenChecker() {
ignore = false;
map = new TreeMap();
}
public LinkedList tokenize(File file) throws IOException , Exception{
currentFile = file.getAbsolutePath();
LinkedList tokens = new LinkedList();
StreamTokenizer stok = new StreamTokenizer(new FileInputStream(file));
stok.ordinaryChar('.');
stok.ordinaryChar('-');
String s;
Token token;
int tok;
int lineNumber;
boolean b;
while((tok = stok.nextToken()) != stok.TT_EOF) {
if(tok == StreamTokenizer.TT_WORD) {
s = (String)stok.sval;
lineNumber = stok.lineno();
if(ignore)
b = lookUp(s.toLowerCase());
else
b = lookUp(s);
token = new Token(s,lineNumber,b);
tokens.add(token);
}
}
map.put(file.getAbsolutePath(),tokens);
return tokens;
}
public boolean lookUp(String w2) throws Exception {
if(dictionary == null)
throw new Exception("No dictionary load yet!");
return dictionary.containsWord(w2);
}
public boolean lookUp(Token tok) throws Exception {
return lookUp(tok.getWord());
}
public void loadDictionary(String dictionaryName)
throws IOException,ClassNotFoundException,Exception {
ObjectInputStream objIn = new ObjectInputStream(new FileInputStream(dictionaryName));
dictionary = (SimpleDictionary)objIn.readObject();
}
public void saveFile(File to_file) throws IOException {
//File to_file = new File(filename);
FileWriter to = new FileWriter(to_file);
to.write(dictionary.getName() + "\r\n");
to.write(currentFile + "\r\n");
System.out.println("in saveFile : source file name is :" + currentFile);
LinkedList tokens = (LinkedList)map.get(currentFile);
Iterator i = tokens.listIterator();
Token tok;
String space = new String(" ");
while(i.hasNext()) {
tok = (Token)i.next();
if(!tok.isCorrect()) {
to.write(tok.getWord());
to.write(space.substring(0,20 - tok.getWord().length()));
to.write(tok.getRow() + "\r\n");
}
}
to.flush();
to.close();
}
public void setCreatedDictionaryName(String name) {
this.createdDictionaryName = name;
}
public void createDictionary(String fileName)
throws FileNotFoundException, IOException{
SimpleDictionary sd = new SimpleDictionary();
FileReader reader;
reader = new FileReader(fileName);
StreamTokenizer tokenizer = new StreamTokenizer(reader);
int tok;
String s;
while((tok = tokenizer.nextToken()) != StreamTokenizer.TT_EOF) {
if(tok == tokenizer.TT_WORD) {
s = (String)tokenizer.sval;
sd.addWord(s);
}
}
FileOutputStream fout;
if(createdDictionaryName != null) {
fout = new FileOutputStream(createdDictionaryName);
sd.setName(createdDictionaryName);
createdDictionaryName = null;
} else {
fout = new FileOutputStream(fileName);
sd.setName(fileName);
}
ObjectOutputStream out = new ObjectOutputStream(fout);
out.writeObject(sd);
}
public void setIgnore(boolean b) {
ignore = b;
}
public SimpleDictionary getDictionary() {
return this.dictionary;
}
public void setCurrentFile(String name) {
this.currentFile = name;
}
public void removeFile(String fileName) {
map.remove(fileName);
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -