今天才发现,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. python3 列表转字节_Python 3.9!10大新特性值得关注
  2. 图灵奖得主Hamming对于少数人获得重大成果原因的思考,送给此刻克服迷惘坚持前行的你...
  3. 吴恩达新年公开推荐这个设计师,上千人点赞
  4. 武汉python培训班排行榜-比较靠谱的武汉Python培训机构是哪个?
  5. activeMQ安装9(window下)
  6. c语言布尔 printf,fmt.Printf中的格式化动作('verb')
  7. Flutter - 生成二维码与识别二维码
  8. 伪静态隐藏域名后缀_你想知道的动态URL、静态URl、伪静态URL概念及区别都在这里!...
  9. 这 10 行比较字符串相等的代码给我整懵了,不信你也来看看
  10. 【转载】浏览器测试工具有哪些 浏览器安全性能内核兼容测试工具推荐
  11. github使用指南_GitHub 上的 12 个骚操作
  12. 李秋豪计算机系统,CS:APP3e 深入理解计算机系统_3e Y86-64模拟器指南
  13. FPGA学习.7——DDS信号发生器
  14. 计算机网络有哪三种地址,IP地址的分类有哪几种
  15. PTA 求链式线性表的倒数第K项 给定一系列正整数,请设计一个尽可能高效的算法,查找倒数第K个位置上的数字。
  16. nginx本地代理调试微信登录(window版本)
  17. 某android广告SDK逆向分析总结
  18. csdn的博客专家:【前端领域新星创作者】认证成功了
  19. SpringMVC @RequestBody问题:Unrecognized field , not marked as ignorable
  20. 如何快速查询全部快递单号物流信息

热门文章

  1. 批量增加域用户并设置为漫游用户
  2. 怎样看懂Oracle的执行计划
  3. nginx 安装失败 没有/etc/nginx目录
  4. Libiconv裁剪
  5. C语言宏的高级应用-转
  6. GDB 调试命令讲解-转
  7. 蓝桥杯 ADV-90 算法提高 输出日历
  8. 【软件测试】单元测试不属于动态测试
  9. 2019武汉大学计算机学院拟录取,武汉大学2019年招收攻读硕士研究生复试成绩拟录取名单...
  10. Oracle之唯一性约束(UNIQUEConstraint)用法详解