1 package prefuse.data.io; 2 3 import java.io.BufferedOutputStream ; 4 import java.io.OutputStream ; 5 import java.io.PrintStream ; 6 7 import prefuse.data.Table; 8 import prefuse.util.collections.IntIterator; 9 10 17 public class DelimitedTextTableWriter extends AbstractTableWriter { 18 19 private String m_delim; 20 private boolean m_printHeader; 21 22 26 public DelimitedTextTableWriter() { 27 this("\t"); 28 } 29 30 34 public DelimitedTextTableWriter(String delimiter) { 35 this(delimiter, true); 36 } 37 38 43 public DelimitedTextTableWriter(String delimiter, boolean printHeader) { 44 m_delim = delimiter; 45 m_printHeader = printHeader; 46 } 47 48 50 54 public String getDelimiter() { 55 return m_delim; 56 } 57 58 62 public void setDelimeter(String delimiter) { 63 m_delim = delimiter; 64 } 65 66 70 public boolean isPrintHeader() { 71 return m_printHeader; 72 } 73 74 78 public void setPrintHeader(boolean printHeader) { 79 m_printHeader = printHeader; 80 } 81 82 84 87 public void writeTable(Table table, OutputStream os) throws DataIOException { 88 try { 89 PrintStream out = new PrintStream (new BufferedOutputStream (os)); 91 92 if ( m_printHeader ) { 94 for ( int i=0; i<table.getColumnCount(); ++i ) { 95 if ( i>0 ) out.print(m_delim); 96 out.print(table.getColumnName(i)); 97 } 98 out.println(); 99 } 100 101 for ( IntIterator rows = table.rows(); rows.hasNext(); ) { 103 int row = rows.nextInt(); 104 for ( int i=0; i<table.getColumnCount(); ++i ) { 105 if ( i>0 ) out.print(m_delim); 106 out.print(table.getString(row, table.getColumnName(i))); 107 } 108 out.println(); 109 } 110 111 out.flush(); 113 } catch ( Exception e ) { 114 throw new DataIOException(e); 115 } 116 } 117 118 } | Popular Tags |