aspose file tools*
The moose likes Servlets and the fly likes Efficient I/O in Servlets Big Moose Saloon
  Search | Java FAQ | Recent Topics | Flagged Topics | Hot Topics | Zero Replies
Register / Login


Win a copy of Java 8 in Action this week in the Java 8 forum!
JavaRanch » Java Forums » Java » Servlets
Bookmark "Efficient I/O in Servlets" Watch "Efficient I/O in Servlets" New topic
Author

Efficient I/O in Servlets

tom walters
Ranch Hand

Joined: Feb 14, 2002
Posts: 34
What is an efficient way to read from an input stream and write to an outputstream when you do not know the number of bytes in the inputstream?
I am currently doing the following:
InputStream is = getInputStream();//helper method
ServletOutputStream sos = response.getOutputStream();
byte b;
while((b = (byte)is.read()) != -1)
sos.write(b);
is.close();
sos.flush();
sos.close();
William Brogden
Author and all-around good cowpoke
Rancher

Joined: Mar 22, 2000
Posts: 12683
    
    5
Although the method you are using is safe and simple, the prefered method is to use a BufferedInputStream / BufferedOutputStream or one of the related classes for reader and writer.
You can use the available() method of BufferedInputStream to see how many bytes you can safely read into a byte[]
Whether it is worth the trouble to use a different method would depend on how often you have to do this and how much data is transferred.
Bill


Java Resources at www.wbrogden.com
 
Don't get me started about those stupid light bulbs.
 
subject: Efficient I/O in Servlets
 
Similar Threads
Converting from BLOB to string
Simple stream read question ...
Convert InputStream to byte array
Accessing parent directory
BufferedReader in J2ME