class ConnReader: def __init__(self, conn): self.conn = conn self.url = conn.getURL().toExternalForm() fields = self.conn.getHeaderFields() self.headers = Headers() for key in fields: if key != None: self.headers[key.lower()] = conn.getHeaderField(key) self.bs = BufferedInputStream(self.conn.getInputStream()) def read(self, *args): if len(args) == 1: size = args[0] buf = zeros(size, 'b') off = 0 while size > 0: count = self.bs.read(buf, off, size) if count == -1: buf = buf[:off] break off += count size -= count return buf.tostring() else: return self.read(int(self.headers['content-length'])) def info(self): return Headers(self.headers) def close(self): self.bs.close()
def write(self, archive, path, dest): archive.putArchiveEntry(ZipArchiveEntry(dest)) input = BufferedInputStream(FileInputStream(path)) IOUtils.copy(input, archive) input.close() archive.closeArchiveEntry()
def load_common_properties(): """Loads common test properties into grinder properties.""" current_dir = os.path.dirname(os.path.abspath(__file__)) file_name = os.path.join(current_dir, PROPERTIES) source = BufferedInputStream(FileInputStream(file_name)) props = Properties() props.load(source) source.close() for key in props.keySet().iterator(): grinder.properties[key] = props.get(key)
def loadProperties(self, source): """ Load a Java properties file into a Dictionary. """ result = {} # name provided, use file if type(source) == type(''): source = FileInputStream(source) bis = BufferedInputStream(source) props = jProperties() props.load(bis) bis.close() for key in props.keySet().iterator(): result[key] = props.get(key) return result
def loadProperties(self, source): """ Load a Java properties file into a Dictionary. """ result = {} # name provided, use file if type(source) == type(""): source = FileInputStream(source) bis = BufferedInputStream(source) props = jProperties() props.load(bis) bis.close() for key in props.keySet().iterator(): result[key] = props.get(key) return result
def read_entry(): is_ = None try: is_ = BufferedInputStream(zip_file.getInputStream(entry)) size = entry.getSize() data = jarray.zeros(size, 'b') nread_tot = 0 while nread_tot < size: nread = is_.read(data, nread_tot, size-nread_tot) if nread <= 0: raise java.io.IOException('Read ended prematurely') nread_tot += nread return data finally: if not is_ is None: is_.close()
def read_entry(): is_ = None try: is_ = BufferedInputStream(zip_file.getInputStream(entry)) size = entry.getSize() data = jarray.zeros(size, 'b') nread_tot = 0 while nread_tot < size: nread = is_.read(data, nread_tot, size - nread_tot) if nread <= 0: raise java.io.IOException('Read ended prematurely') nread_tot += nread return data finally: if not is_ is None: is_.close()
def processResponse(self, response): #threadContext = HTTPPluginControl.getThreadHTTPClientContext() #threadContext.resumeClock() # We just want to read data flow - so we can scale bodyLength = 0 bin = BufferedInputStream(response.getInputStream()) buf = jarray.zeros(8192, 'b') lenBuf = 0 while lenBuf != -1: lenBuf = bin.read(buf) bodyLength += lenBuf bin.close() grinder.getLogger().output("INFO: Download of %d bytes finished" % (bodyLength)) #threadContext.pauseClock(); # Update statistics with body size testStatistics = grinder.getStatistics() if (testStatistics.isTestInProgress()): testStatistics.getForCurrentTest().addLong( "httpplugin.responseLength", bodyLength)
from java.io import File as F from java.io import FileInputStream as FI from java.io import FileOutputStream as FO from java.io import BufferedInputStream as BI from java.io import BufferedOutputStream as BO from java.util.zip import InflaterInputStream as II file_read = F("file5.txt") file_write = F("file6.txt") bi = BI(II(FI(file_read))) bo = BO(FO(file_write)) while True: val = bi.read() if val != -1: bo.write(val) else: break bi.close() bo.close()
class IncrementalParser(object): def __init__(self, encoding=ENCODING): self._depth = 0 self._buffer = '' self.handler = IncrementalHandler() self._encoding = encoding self._fed = PipedOutputStream() self._feeder = BufferedInputStream(PipedInputStream(self._fed)) self._fed.write('<?xml version="1.0" encoding="%s"?>' % encoding) ipf = XMLInputFactory.newInstance() ipf.setProperty(XMLInputFactory.IS_NAMESPACE_AWARE, True) self._sr = ipf.createXMLStreamReader(self._feeder) self._er = ipf.createXMLEventReader(self._sr) def close(self): self._initialized = False self.handler.reset() self._depth = 0 self._buffer = '' self._fed.close() self._feeder.close() self._er.close() self._sr.close() def reset(self): self.close() self._fed = PipedOutputStream() self._feeder = BufferedInputStream(PipedInputStream(self._fed)) self._fed.write('<?xml version="1.0" encoding="%s"?>' % self._encoding) ipf = XMLInputFactory.newInstance() ipf.setProperty(XMLInputFactory.IS_NAMESPACE_AWARE, True) self._sr = ipf.createXMLStreamReader(self._feeder) self._er = ipf.createXMLEventReader(self._sr) def _parse(self, chunk, fragment=False): if chunk.startswith('<?xml '): chunk = chunk[chunk.find('?>')+2:] if not chunk: return self._fed.write(chunk) er = self._er consumed = False while er.hasNext(): if not fragment and self._feeder.available() == 0 and consumed: break event = er.next() etype = event.getEventType() if etype == XMLEvent.START_ELEMENT: consumed = False if not chunk.endswith('/>'): consumed = True self._depth += 1 element = event.asStartElement() self.handler.startElementNS(None, element.getName(), element.getAttributes()) elif etype == XMLEvent.END_ELEMENT: consumed = True self._depth -= 1 element = event.asEndElement() self.handler.endElementNS(None, element.getName()) if self._depth == 0: break elif etype == XMLEvent.CHARACTERS: consumed = False self.handler.characters(event.asCharacters().getData()) elif etype == XMLEvent.COMMENT: consumed = True self.handler.comment(event.getText()) elif etype == XMLEvent.PROCESSING_INSTRUCTION: consumed = True self.handler.processingInstruction(event.getTarget(), event.getData()) elif etype == XMLEvent.START_DOCUMENT: self.handler.startDocument() elif etype == XMLEvent.END_DOCUMENT: break def feed(self, chunk): if not chunk: return self._buffer = self._buffer + chunk pos = posa = 0 posb = -1 last_posb = 0 new_buffer = '' buf_len = len(self._buffer) while 1: found = False posa = self._buffer.find('<', pos) if posa > -1: posb = self._buffer.find('>', posa) if posb > -1: found = True pos = posb self._parse(self._buffer[last_posb:posb+1]) last_posb = posb+1 if not found and posb != buf_len: break self._buffer = self._buffer[last_posb:]
class IncrementalParser(object): def __init__(self, encoding=ENCODING): self._depth = 0 self._buffer = '' self.handler = IncrementalHandler() self._encoding = encoding self._fed = PipedOutputStream() self._feeder = BufferedInputStream(PipedInputStream(self._fed)) self._fed.write('<?xml version="1.0" encoding="%s"?>' % encoding) ipf = XMLInputFactory.newInstance() ipf.setProperty(XMLInputFactory.IS_NAMESPACE_AWARE, True) self._sr = ipf.createXMLStreamReader(self._feeder) self._er = ipf.createXMLEventReader(self._sr) def close(self): self._initialized = False self.handler.reset() self._depth = 0 self._buffer = '' self._fed.close() self._feeder.close() self._er.close() self._sr.close() def reset(self): self.close() self._fed = PipedOutputStream() self._feeder = BufferedInputStream(PipedInputStream(self._fed)) self._fed.write('<?xml version="1.0" encoding="%s"?>' % self._encoding) ipf = XMLInputFactory.newInstance() ipf.setProperty(XMLInputFactory.IS_NAMESPACE_AWARE, True) self._sr = ipf.createXMLStreamReader(self._feeder) self._er = ipf.createXMLEventReader(self._sr) def _parse(self, chunk, fragment=False): if chunk.startswith('<?xml '): chunk = chunk[chunk.find('?>') + 2:] if not chunk: return self._fed.write(chunk) er = self._er consumed = False while er.hasNext(): if not fragment and self._feeder.available() == 0 and consumed: break event = er.next() etype = event.getEventType() if etype == XMLEvent.START_ELEMENT: consumed = False if not chunk.endswith('/>'): consumed = True self._depth += 1 element = event.asStartElement() self.handler.startElementNS(None, element.getName(), element.getAttributes()) elif etype == XMLEvent.END_ELEMENT: consumed = True self._depth -= 1 element = event.asEndElement() self.handler.endElementNS(None, element.getName()) if self._depth == 0: break elif etype == XMLEvent.CHARACTERS: consumed = False self.handler.characters(event.asCharacters().getData()) elif etype == XMLEvent.COMMENT: consumed = True self.handler.comment(event.getText()) elif etype == XMLEvent.PROCESSING_INSTRUCTION: consumed = True self.handler.processingInstruction(event.getTarget(), event.getData()) elif etype == XMLEvent.START_DOCUMENT: self.handler.startDocument() elif etype == XMLEvent.END_DOCUMENT: break def feed(self, chunk): if not chunk: return self._buffer = self._buffer + chunk pos = posa = 0 posb = -1 last_posb = 0 new_buffer = '' buf_len = len(self._buffer) while 1: found = False posa = self._buffer.find('<', pos) if posa > -1: posb = self._buffer.find('>', posa) if posb > -1: found = True pos = posb self._parse(self._buffer[last_posb:posb + 1]) last_posb = posb + 1 if not found and posb != buf_len: break self._buffer = self._buffer[last_posb:]
# -*- coding: utf-8 -*- from __future__ import unicode_literals from java.io import BufferedOutputStream as BO from java.io import BufferedInputStream as BI from java.io import FileInputStream as FI from java.io import FileOutputStream as FO f_read = FI("file1.txt") b_read = BI(f_read) f_write = FO("file2.txt") b_write = BO(f_write) while True: ch = b_read.read() if ch != -1: b_write.write(ch) else: break b_read.close() f_read.close() b_write.close() f_write.close()