代码
package com.mingrisoft.model;
import java.io.File;
import java.io.IOException;
import javax.swing.JOptionPane;
import org.apache.commons.io.FileUtils;
import org.apache.commons.io.LineIterator;
import com.mingrisoft.util.DBHelper;
import com.mingrisoft.util.WordUtil;
public class wordImport {
public static void main(String[] args) {
File file = new File("C:\\Users\\46250\\Desktop\\java开发项目\\英汉字典开发\\词典词库\\柯林.txt");
Word word = new Word();
int n = 1;
try {
LineIterator lineIterator = FileUtils.lineIterator(file, "UTF-8");//设置读取的格式
while (lineIterator.hasNext()) {
//这里的行并不是txt文件中看到的行,而是读取到"\n"为止
String line = lineIterator.nextLine();
// 行数据转换成数组
//将行通过制表符划分(这里需要转义字符)产生两个字符串的数组,即将读到的第一个制表符作为划分依据
String[] custArray = line.split("\\t", 2);
if(custArray[1].indexOf("\t") == -1){//如果没有制表符则跳过
continue;
}
custArray[1] = custArray[1].substring(custArray[1].indexOf("1"));//划分第一个1后面的字符串(包括1)
custArray[1] = custArray[1].replaceAll("\\. ", "\\.\n");//遇到.就换行
custArray[1] = custArray[1].replaceAll("。", "。\n");//遇到。就换行
custArray[1] = custArray[1].substring(0,custArray[1].length() - 2);//去掉最后显示出来的\n
String partOfSpeech = custArray[1].substring(custArray[1].indexOf("1")+2, custArray[1].indexOf("\t"));//取出单词的词性
word.setSpelling(custArray[0].trim());
word.setPartOfSpeech(partOfSpeech);
//System.out.println(custArray[1].trim());
word.setMeaning(custArray[1].trim());
if (DBHelper.insertSingleWord(word) == -1) {
System.out.println("保存失败!");
}else{
System.out.println("插入第"+(n++)+"数据");
}
}
} catch (IOException e) {
e.printStackTrace();
}
}
}
实现后的效果
