1 4 package com.openedit.archive.cumulus; 5 6 import java.io.BufferedReader ; 7 import java.io.IOException ; 8 import java.io.Reader ; 9 import java.util.List ; 10 11 import com.openedit.util.FileUtils; 12 13 public class ImportFile 14 { 15 protected List fieldRows; 16 protected Header fieldHeader; 17 protected BufferedReader fieldReader; 18 protected Parser fieldParser; 19 20 public ImportFile() 21 { 22 } 23 public void load(Reader inFile) throws Exception 24 { 25 BufferedReader reader = new BufferedReader (inFile); 28 setReader(reader); 29 30 String line = reader.readLine(); 31 while( line != null) 32 { 33 if( line.startsWith("%Fieldnames")) 34 { 35 String row = reader.readLine(); List cells = getParser().parse(row); 37 setHeader(new Header()); 38 getHeader().setHeaders((String [])cells.toArray(new String [cells.size()])); 39 } 40 else if( line.startsWith("%Data")) 41 { 42 break; 43 } 44 line = reader.readLine(); 45 } 46 47 48 } 49 50 public Row getNextRow() throws IOException 51 { 52 String line = getReader().readLine(); 53 if ( line == null) 54 { 55 FileUtils.safeClose(getReader()); 56 return null; 57 } 58 66 line = line.replaceAll("\u001e"," , "); 67 68 StringBuffer escapedSource = new StringBuffer (line.length()); 70 for ( int n = 0; n < line.length(); n++ ) 72 { 73 char c = line.charAt( n ); 74 if ( c > 31 && c < 127 ) 75 { 76 escapedSource.append( c ); 77 } 78 if ( c == '\t') 79 { 80 escapedSource.append( c ); 81 } 82 else 83 { 84 } 86 } 87 line = escapedSource.toString(); 88 89 String [] cells = getParser().parseRegEx(line); 90 Row row = new Row(); 91 row.setHeader(getHeader()); 92 row.setData( cells ); 94 return row; 95 } 96 97 public Header getHeader() 98 { 99 return fieldHeader; 100 } 101 102 public void setHeader(Header inHeader) 103 { 104 fieldHeader = inHeader; 105 } 106 public BufferedReader getReader() 107 { 108 return fieldReader; 109 } 110 public void setReader(BufferedReader inReader) 111 { 112 fieldReader = inReader; 113 } 114 public Parser getParser() 115 { 116 if ( fieldParser == null) 117 { 118 fieldParser = new Parser('\t'); 119 } 120 return fieldParser; 121 } 122 public void setParser(Parser inParser) 123 { 124 fieldParser = inParser; 125 } 126 public void close() 127 { 128 FileUtils.safeClose( getReader() ); 129 } 130 131 } 132 | Popular Tags |