java xml 大文件怎么打开_JAVA xml 流方式读取。数据挖掘大文件预处理。
importjava.io.BufferedReader;importjava.io.BufferedWriter;importjava.io.File;importjava.io.FileReader;importjava.io.FileWriter;importjava.io.IOException;importjava.util.HashMap;importjava.util.Iterator;importjava.util.Map;/***@authorgjf
*db_pre.arff存储的是从xml文件中读取的xml信息*/
public classElmAuth {
Map map = new HashMap();//第一步//从xml文件中提取 读取xml文件中的author信息,写到db_pre.arff,并且替换特殊字符
public void settleXml(String src, String dst){//src=dblp.xml dst=db_pre.arff
File file = newFile(src);
File fl= newFile(dst);
FileReader fr;try{
fr= newFileReader(file);
FileWriter fw= newFileWriter(fl);
BufferedReader br= newBufferedReader(fr);
BufferedWriter bw= newBufferedWriter(fw);
String line= null;boolean flag = true;intloc_st;intloc_end;int len = 0, max = 0;while((line = br.readLine()) != null){if(line == null)break;
loc_st= line.indexOf("");if(loc_st != -1){
loc_end= line.indexOf("");
line= line.substring(loc_st + 8, loc_end);//在之间的数据,一个作者的名字
line=line.replace('&', ' ');
line=line.replace('$', ' ');
line=line.replace("' "," ");
line=line.replace("'", " ");/*flag以文章为界限,在同一篇文章内,flag=false,写入在同一行*/
if(flag){
bw.write("\n");
bw.write(line);
}else{
bw.write(",");
bw.write(line);
}
len++;//每写一个作者,计数加 +1
flag = false;
}else{
flag= true;if(max < len) max = len;//选择最大的len;
len = 0;
bw.flush();
}
}
System.out.println("第一步 论文中具有最大的作者数:" +max);
}catch(IOException e) {
e.printStackTrace();
}
}//消除只有单个作item//第二步:将作者的信息db_pre.arff中只有一个作者的数据删除
public void elimate_one(String src, String dst){//src=db_pre.arff dst=db_elone.arff
try{
File file= newFile(src);
FileReader fr= newFileReader(file);
BufferedReader br= newBufferedReader(fr);
File filew= newFile(dst);
FileWriter fw= newFileWriter(filew);
BufferedWriter bw= newBufferedWriter(fw);
Map map = new HashMap();
String line= null;int k = 1;int res = 0;while((line = br.readLine()) != null){
String[] arrLine= line.split(",");//作者之间用","隔离,","的数量表示作者的个数,数量比一少,则不写入.
if(arrLine.length > 1){
bw.write(line);
bw.write("\n");
res++;
}
}
bw.flush();
br.close();
bw.close();
fr.close();//System.out.println("The Row of the file is:" + res);
System.out.println("这篇论文中去除单个作者后的行数:" +res);
}catch(IOException e) {
e.printStackTrace();
}
}//将剩余的作储再hashMap中,key值为人名,value为出现的次数,支持度数
public void createMap(String src){//srr=db_elone.arff
try{
File file= newFile(src);
FileReader fr= newFileReader(file);
BufferedReader br= newBufferedReader(fr);
String line= null;while((line = br.readLine()) != null){if(line == null)break;
String[] arrLine= line.split(",");for(int i = 0; i < arrLine.length; ++i){if(map.get(arrLine[i]) == null){
map.put(arrLine[i],1);
}else{
map.put(arrLine[i], map.get(arrLine[i])+ 1);
}
}
}
fr.close();
br.close();
}catch(IOException e) {
e.printStackTrace();
}
}//从hashMap中删除小于支持度minsup的作者,本次的支持度数为100;
public void settleMap(intminsup){
Iterator it=map.keySet().iterator();while(it.hasNext()){
String str=(String) it.next();if(map.get(str)
it.remove();
}
}
System.out.println("Map的大小,支持度大于100的作者个数:" +map.size());
}//将大于minsup的作者存储到文件 db_minsup.arff,存储的是符合筛选的作者
public void updateMap(String src, String dst){//src=db_elone.arff dst=db_minsup.arff
try{
File filer= newFile(src);
FileReader fr= newFileReader(filer);
BufferedReader br= newBufferedReader(fr);
File filew= newFile(dst);
FileWriter fw= newFileWriter(filew);
BufferedWriter bw= newBufferedWriter(fw);
String line= null;int res = 0;boolean flag = true;while((line = br.readLine()) != null){if(line == null)break;
String[] arrLine= line.split(",");if(flag == false)res++;
flag= true;for(int i = 0; i < arrLine.length; ++i){if(map.get(arrLine[i]) != null){if(flag == true){
bw.write("\n" +arrLine[i]);
flag= false;
}else{
bw.write("," +arrLine[i]);
}
}
}
}
bw.flush();
System.out.println("符合筛选的作者合作写的论文篇数:" +res);
fw.close();
bw.close();
fr.close();
br.close();
}catch(IOException e) {
e.printStackTrace();
}
}//生成weka识别的文 dst=db
public void createWekaFile(String src, String dst){//src=db_minsup.arff dst=db
try{
File filer= newFile(src);
FileReader fr= newFileReader(filer);
BufferedReader br= newBufferedReader(fr);
File filew= newFile(dst);
FileWriter fw= newFileWriter(filew);
BufferedWriter bw= newBufferedWriter(fw);
bw.write("@relation db" + "\n");
Iterator it=map.keySet().iterator();while(it.hasNext()){
String str=(String) it.next();
str.replace("'", "\'");
bw.write("@attribute '" + str + "' { t}\n");
}
bw.write("@data" + "\n");
String line= null;boolean flag = true;while((line = br.readLine()) != null){if(line == null)break;
flag= true;charch;
it=map.keySet().iterator();while(it.hasNext()){
String str=(String)it.next();if(line.indexOf(str) >= 0){
ch= 't';
}else{
ch= '?';
}if(flag == true){
bw.write(ch);
}else{
bw.write("," +ch);
}
flag= false;
}
bw.write("\n");
}
bw.flush();
fw.close();
bw.close();
fr.close();
br.close();
}catch(IOException e) {//TODO Auto-generated catch block
e.printStackTrace();
}
}public voidclearMap(){
map.clear();
}public static voidmain(String args[]){
ElmAuth elmauth= newElmAuth();
elmauth.settleXml("dblp.xml", "db_pre.arff");
elmauth.elimate_one("db_pre.arff", "db_elone.arff");
elmauth.createMap("db_elone.arff");
elmauth.settleMap(100);//确定最小支持度数
elmauth.updateMap("db_elone.arff", "db_minsup.arff");for(int i = 0; i < 20; ++i){
System.out.println();
elmauth.elimate_one("db_minsup.arff", "db_minsup_elone.arff");
elmauth.clearMap();
elmauth.createMap("db_minsup_elone.arff");
elmauth.settleMap(100);
elmauth.updateMap("db_minsup_elone.arff", "db_minsup.arff");
}
elmauth.createWekaFile("db_minsup.arff", "db.arff");
}
}
java xml 大文件怎么打开_JAVA xml 流方式读取。数据挖掘大文件预处理。相关推荐
- c语言打开关闭文件的顺序,C语言1-文件概述、文件的打开与关闭、顺序读写数据文件(1).docx...
C语言程序设计教案 章节名称 文件概述.文件的打开与关闭.顺序读写数据文件(1) 授课类型 □理论 □实验 ?理实一体 □实训 □实习 班级 地点 周次 星期 节次 授课进度 ?符合 □超前 □滞后 ...
- CAD文件怎么打开?什么软件可以快速打开CAD文件?
对于刚接触CAD文件的小伙伴,肯定对如何打开CAD文件感到困惑,这是因为想要打开CAD文件,就需要使用专业的CAD看图软件才可以打开,那么CAD文件怎么打开?什么软件可以快速打开CAD文件? 如果我们 ...
- java 监控 配置 文件怎么打开_java实现文件变化监控的方法(推荐)
一. spring配置文件:application.xml xmlns:tx="http://www.springframework.org/schema/tx" xmlns:ao ...
- 电脑上xml文件怎么打开,xml文件如何在电脑上打开
XML文件可以用来在浏览器中生成网页,可以使用任意的标记等.不过有些网友接收到xml文件后发现电脑打不开,不知道xml文件怎么打开怎么办.下面小白就教下大家打开xml文件的方法. 1.运行EXCEL2 ...
- java音频文件怎么打开_java 怎么读取音乐文件
展开全部 以随机读写方式打开一个MP3文件 将文件指针32313133353236313431303231363533e58685e5aeb931333337613838偏移量移动到文件长度倒数128 ...
- java导出文件到excel文件怎么打开_Java导出数据到Excel文件
Java导出数据到Excel文件需要的jar包:easypoi-0.1.3.jar, poi-3.7-20101029 package com.sais.inkaNet.reportStatistic ...
- 怎么向java窗口中插入XSL表_Java向word中插入Excel文件对象
前言: 在word文件中,虽然也有表格.但是有时我们想要将Excel中表格的大量数据直接插入到word文档中,这就需要用到word的插入对象的功能,也就是直接将Excel文件当做对象插入到word中. ...
- java高效复制文件并移动_Java 7:复制和移动文件和目录
java高效复制文件并移动 这篇文章是我对Java 7 java.nio.file软件包的系列文章的继续,这次涵盖了文件的复制和移动以及完整的目录树. 如果您曾经对Java缺少copy和move方法感 ...
- android和ios传文件怎么打开方式,安卓怎么给iPhone传文件?文件互传教程
大家使用手机的时候肯定都会用到蓝牙或者互传文件功能,安卓和安卓手机直接传文件非常简单方便,那么安卓怎么给iPhone传文件呢?小编下面就给大家带来安卓和iPhone文件互传教程. 说道文件互传,大家肯 ...
最新文章
- 日积月累真的很可怕,记住这些编程单词,两周学会敲代码
- 自建mysql和华为云mysql_自建数据库和云数据库区别和使用(以MySQL为例)
- (.DS_Store)避免多人提交代码到GitHub上起冲突
- 如何及时获得AI顶尖科研团队的最新论文与进展?只需要一份AI内参!
- python mixup
- Codeforces937D Sleepy Game
- 01ts简介和相关配置
- Delphi关于StringGrid的公用模块[转]
- android app应用后台休眠,安卓手机锁屏后程序自动关闭,怎么设置手机app允许锁屏后台运行...
- 数据意识崛起,从企业应用看BI软件的未来发展
- Eigen3卸载与重装
- 基于Flink CDC打通数据实时入湖
- 【node】node连接mongodb操作数据库
- 常用的html语言,常用的HTML语言标记
- 百炼-2726:采药
- 广芯微电子产品使用笔记分享
- 深山红叶袖珍PE工具箱V16正式版
- 计算机的好与坏作文,电脑“坏”了的作文
- mac使用cjk和ctex宏包
- amd显卡Linux查看显存,通过软件查看显存参数_显卡_显卡技术应用-中关村在线