今天才发现,prefuse的官方用户手册没有写完,只能自己边研究边写了。

之前用到一个GraphMLReader类的GraphReader函数,就先从他入手吧:

1、GraphMlReader

定义:

public class GraphMLReader extends AbstractGraphReader  implements GraphReader{
/***
.....
***/
}

其中:GraphReader仅仅定义了四个不同参数reader函数,其内容为:

public interface GraphReader {
  public Graph readGraph(String location) throws DataIOException;
  public Graph readGraph(URL url) throws DataIOException;
  public Graph readGraph(File f) throws DataIOException;
  public Graph readGraph(InputStream is) throws DataIOException;
}

AbstractGraphReader也是一个抽象类,对前三个Reader进行了实现,最后一个参数为InputStream is的仍然保留为抽象函数,但是,如果观察这些实现的函数会发现,所有的读入动作,最后都交给了public Graph readGraph(InputStream is) throws DataIOException; 函数来实现,这样具体怎么读入数据,就要看集成这个抽象类的类来决定了。

而GraphMLReader直接对这个函数进行了实现:

public Graph readGraph(InputStream is) throws DataIOException {try {       SAXParserFactory factory   = SAXParserFactory.newInstance();SAXParser        saxParser = factory.newSAXParser();GraphMLHandler   handler   = new GraphMLHandler();System.out.println("here");saxParser.parse(is, handler);return handler.getGraph();} catch ( Exception e ) {if ( e instanceof DataIOException ) {throw (DataIOException)e;} else {throw new DataIOException(e);}}}

其中SAXParserFactory,SAXParser是java提供的一个解析XML的库文件,输入的第一个参数为InputStream,第二个参数是DefaultHandler。这里的GraphMLHandler就是一个继承了DefaultHandler的静态类,见该文件中后边部分。

转载于:https://www.cnblogs.com/Joy06/p/3371794.html

Prefuse 4未完相关推荐

  1. 《今日简史》读书笔记(未完待续)

    <今日简史>读书笔记(未完待续) 这本书是尤瓦尔·赫拉利的简史三部曲的最后一本,前2本书是<未来简史>和<人类简史>.根据豆瓣上网友的评价,这本书是尤瓦尔·赫拉利写 ...

  2. [每周软件]:Cucumber:未完待续的原因

    2019独角兽企业重金招聘Python工程师标准>>> 本来这个计划是一周的 剩下未完的三篇才是核心 两篇源码分析,一篇总结+BDD分析,但是因为目前水平有限 源码追了一部分之后追丢 ...

  3. ExtJs之Ext.grid.GridPanel(部分未完)

    今天在家休息,年假不用就作费啊. 看了几部香港老电影,陪爸爸看了勇士占奇才, 然后,测试了一下EXTJS未完的内容, 在京东上订了七本历史普及书,近两百块..:) 搞定. ? 1 2 3 4 5 6 ...

  4. 创建型模式——Factory Method(未完)

    当对某个对象的实例化代码散布在整个项目中的时候,似乎你已经可以嗅到坏味道了,我们叫做"创建蔓延".除非你肯定这个对象的实例化方法永远不会改变,否则最后将"创建的知识搬迁到 ...

  5. linux引数列项目过长,Linux 命令个人总结====== 未完待续 个人认为比较重要

    Linux 命令个人总结====== 未完待续 man [功能说明]: 查看帮助 [语法格式]: man [123456789]命令.文件. [选项参数]: 数字"1"表示用户命令 ...

  6. CC2530学习路线-基础实验-串口通讯发送字符串(4 未完待续)

    目录 1. 前期预备知识 1.1 串口通讯电路图 1.2 实验相关寄存器 1.2 常用波特率设置 本章未完待续..... 原来写的文章已经丢失了,只能找到这一小部分,看什么时候有时间再补上. 1. 前 ...

  7. [教程] [承風雅傳HSU]用ES4封裝Win7---ES4 Win7封裝教程(未完待續)

    [教程] [承風雅傳HSU]用ES4封裝Win7---ES4 Win7封裝教程(未完待續) a10036it 发表于 2015-7-27 21:11:19 https://www.itsk.com/t ...

  8. Codeforces Round #395 (Div. 2)(未完)

    2.2.2017 9:35~11:35 A - Taymyr is calling you 直接模拟 #include <iostream> #include <cstdio> ...

  9. 计算机病毒洛,蓝狐动漫《百变机兽》中未完的战争,蓝毒兽原来是电脑病毒?...

    原标题:蓝狐动漫<百变机兽>中未完的战争,蓝毒兽原来是电脑病毒? 最近,好久没有更新了,因为最近找到一部非常好看的童年动漫<百变机兽>,然后就一直追剧.今天和大家一起聊聊< ...

最新文章

  1. JQuery遍历控件的方法
  2. 下载nodejs的mysql安装包下载安装_Node.js安装 下载
  3. Java:计算类的serialVersionUID
  4. 论文浅尝 - TACL2020 | 改进低资源跨语言实体链接的候选生成问题
  5. 一条开启勇士王朝的短信
  6. iframe design=on 时,oncontextmeun不能触发之问题!
  7. Python 基础课程第五天
  8. ERP软件管理持续升级 抢占产业先机
  9. Java:注解(Annotation)自定义注解入门
  10. 过滤器为JSP文件生成静态页面
  11. Python基于seaborn绘制喜欢的热力图,不同色系一览
  12. 文件浏览器一定要有个向上级按钮
  13. php百度地图普通ip定位,使用百度地图定位IP位置
  14. APUE---chap3文件I/O---3.11原子操作
  15. vue 时间插件限制选择时间
  16. here i am(歌手BryanAdams的歌曲)
  17. 微众银行再次入驻微信小程序,人人可申请,66万人提额100亿,发福利啦!!!...
  18. 知识点滴 - X射线和伽马射线有什么区别?
  19. 埃林哲一面面试经历(记录第一次面试)
  20. 仿乐享微信源码分享,微信管家升级版最新版本

热门文章

  1. nfs挂载hdfs,实现云存储
  2. 使用sersync实现多台服务器实时同步文件
  3. zip、rar文件格式
  4. Linux系统启动过程分析 -转
  5. mongodb java驱动_Java的MongoDB驱动及读写策略
  6. 蓝桥杯 ALGO-37 算法训练 Hankson的趣味题
  7. 1064. 朋友数(20)-PAT乙级真题
  8. 1051. 复数乘法 (15)-PAT乙级真题
  9. 腾达ac9虚拟服务器,腾达AC9官方定制固件1.0版-加广告屏蔽、迅雷等
  10. springmvc 带查询条件的分页,form的控制范围,怎么包裹条件提交给后台