package com.smtscript.lib.file; import java.io.BufferedReader; import java.io.FileInputStream; import java.io.InputStreamReader; public class JSFileTextReader { private BufferedReader _reader; public JSFileTextReader(String fileName, String encode) throws Exception { _reader = new BufferedReader(new InputStreamReader(new FileInputStream(fileName),encode)); } public void close() throws Exception { if(_reader != null) { _reader.close(); _reader = null; } } public String readLine() throws Exception { return _reader.readLine(); } public String readChar() throws Exception { int ch = _reader.read(); if(ch < 0) return null; return String.format("%c", ch); } public String readString(int size) throws Exception { char[] buf = new char[size]; _reader.read(buf); return new String(buf); } public String readSQLLine(char chEOF) throws Exception { int ch; char mode = 'N'; boolean hasValue = false; StringBuilder sbSQL = new StringBuilder(); while((ch = _reader.read()) >= 0) { hasValue = true; if(mode == 'N') { if(ch == chEOF) break; if(ch == '\'') { sbSQL.append((char)ch); mode = 'S'; } else if(ch == '"') { sbSQL.append((char)ch); mode = 'D'; } else { sbSQL.append((char)ch); } } else if(mode == 'S') { sbSQL.append((char)ch); if(ch == '\'') mode = 'N'; } else if(mode == 'S') { sbSQL.append((char)ch); if(ch == '\"') mode = 'N'; } } if(!hasValue) return null; return sbSQL.toString(); } }