anchor.diff:  g.io().writeGraphSON("tinkerpop-modern.json");
   
   final Graph newGraph = TinkerGraph.open();
  -newGraph.io().readGraphSON("tinkerpop-modern.json")'
  +newGraph.io().readGraphSON("tinkerpop-modern.json");
   ----
   
   If a custom configuration is required, then have the `Graph` generate a `GraphReader` or `GraphWriter` "builder" instance:
  
positive.code: ----
  gremlin> g = TinkerFactory.createModern()
  ==>tinkergraph[vertices:6 edges:6]
  gremlin> f = new FileOutputStream('vertex-1.json')
  ==>java.io.FileOutputStream@4df39a88
  gremlin> g.io().graphSONWriter().create().writeVertex(f, g.V(1).next(), BOTH)
  ==>null
  gremlin> f.close()
  ==>null
  ----
  
  The following GraphSON example shows the output of `GraphSonWriter.writeVertex()` with associated edges:
  
  
negative.code: Gremlin I/O
  -----------
  
  image:gremlin-io.png[width=250,float=right] The task of getting data in and out of `Graph` instances is the job of the Gremlin I/O packages.  Gremlin I/O provides two interfaces for reading and writing `Graph` instances: `GraphReader` and `GraphWriter`.  These interfaces expose methods that support:
  
  * Reading and writing an entire `Graph`
  * Reading and writing a `Traversal<Vertex>` as adjacency list format
  