-- SMART RESULTS TEXTFORMAT --
USER_PROTEIN_ID = Q7RTP0
SMART_PROTEIN_ID = uniprot|Q7RTP0|NIPA1_HUMAN
NUMBER_OF_FEATURES_FOUND=9
DOMAIN=Pfam:DUF803
START=26
END=318
EVALUE=2.5e-80
TYPE=SMART
STATUS=visible|OK
DOMAIN=transmembrane_domain
START=26
END=48
EVALUE=0
TYPE=INTRINSIC
STATUS=hidden|overlap
-- FINISHED --
这是其中一小段文本文档,-- FINISHED --将不同基因分割开来,想提取出每个基因中TYPE=SMART对应的USER_PROTEIN_ID ,DOMAIN,START,END对应的值,并写到一个文本文档中,该怎么用java实现????
1. 读取指定文本文件对象。
2. 利用过滤器可以把所需信息读取来即可。
3. 把读出来的信息输出(持久化)即可。
可参考以下代码
package tool;
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileWriter;
import java.io.IOException;
import java.util.ArrayList;
//有序列出指定目录下所有文件及列表
public class FileListAndRemoveFile {
public static void main(String[] args) throws IOException {
//创建需要打印的目录的对象
File dir = new File("D:\\1");
ArrayList<File> list = new ArrayList<File>();
getList(dir, list);
//创建输出文件
File destFile = new File("d:\\list.txt");
writer2destFile(destFile, list);
//打印到控制台,测试用
// printOut(list);
//删除指定文件夹
// removedir(dir);
}
public static void getList(File dir, ArrayList<File> list) {
list.add(dir);
File[] files = dir.listFiles();
for(File file : files){
if(file.isDirectory()){
getList(file, list);
}else
list.add(file);
}
}
private static void writer2destFile(File destFile, ArrayList<File> list) throws IOException {
BufferedWriter bufw = new BufferedWriter(new FileWriter(destFile));
for(File file : list){
bufw.write(file.getAbsolutePath());
bufw.newLine();
bufw.flush();
}
bufw.close();
}
public static void removedir(File dir) {
File[] files = dir.listFiles();
for (File file : files) {
if (file.isDirectory()) {
removedir(file);
} else
System.out.println(file+"="+file.delete());
}
System.out.println(dir+"="+dir.delete());
}
public static void printOut(ArrayList<File> list) {
for(File file : list){
System.out.println(file.getAbsolutePath());
}
}
}
但是你想获取的文本应该是有规律的(能够用正则表达式提取:比如:url....),否则无法实现。