代码

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();
	    }  
	}
}

实现后的效果

txt文件导入数据库

相关文章: