KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > planetamessenger > io > JIOStream


1 /*
2     =========================================================================
3     Package io - Implements the IO and Streams methods.
4
5     This module is developed and maintained by PlanetaMessenger.org.
6     Specs, New and updated versions can be found in
7     http://www.planetamessenger.org
8     If you want contact the Team please send a email to Project Manager
9     Leidson Campos Alves Ferreira at leidson@planetamessenger.org
10
11     Copyright (C) since 2001 by PlanetaMessenger.org
12     
13     This library is free software; you can redistribute it and/or
14     modify it under the terms of the GNU Lesser General Public
15     License as published by the Free Software Foundation; either
16     version 2.1 of the License, or (at your option) any later version.
17
18     This library is distributed in the hope that it will be useful,
19     but WITHOUT ANY WARRANTY; without even the implied warranty of
20     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
21     Lesser General Public License for more details.
22
23     You should have received a copy of the GNU Lesser General Public
24     License along with this library; if not, write to the Free Software
25     Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
26
27     =========================================================================
28 */

29 /**
30  *
31  * $Id: JIOStream.java,v 1.6 2007/02/11 13:52:36 popolony2k Exp $
32  * $Author: popolony2k $
33  * $Name: $
34  * $Revision: 1.6 $
35  * $State: Exp $
36  *
37  */

38
39 package org.planetamessenger.io;
40
41 import java.io.*;
42 import java.net.*;
43 import org.planetamessenger.util.JKeyParser;
44
45
46
47 public class JIOStream {
48     
49   
50   public JIOStream() {
51   /**
52      Constructor. Initializes all class
53      data.
54   */

55    
56   }
57   
58   public boolean send( OutputStream outStream, java.lang.String JavaDoc strOutData ) {
59   /**
60      Send data to a connected socket and
61      waits for a server response, retrieving
62      the server sent data.
63      Parameters:
64       * outStream - OutputStream to send this data;
65       * strOutData - Data to send;
66   */

67   
68     if( outStream == null )
69       return false;
70     
71     try {
72       Writer outWriter = new OutputStreamWriter( outStream, "8859_1" );
73       
74       
75       outWriter.write( strOutData );
76       outWriter.flush();
77       
78     } catch( IOException e ) {
79       
80       System.err.println( "JIOStream.send() - " + e );
81       return false;
82     }
83
84     return true;
85   }
86   
87   public java.lang.String JavaDoc recv( java.io.InputStream JavaDoc inStream ) {
88   /**
89      Receives data from server.
90      Parameters:
91       * inStream - InputStream to receive
92         the data;
93   */

94     
95     if( inStream == null )
96       return "";
97     
98     try {
99       int nChar;
100       java.lang.String JavaDoc strServerData = "";
101       BufferedInputStream inBuffer = new BufferedInputStream( inStream );
102       InputStreamReader inReader = new InputStreamReader( inBuffer, "8859_1" );
103
104       
105       while( ( nChar = inReader.read() ) != -1 ) {
106         strServerData += ( char ) nChar;
107       }
108       
109       return strServerData;
110     } catch( IOException e ) {
111       System.err.println( "JIOStream.recv(1) - " + e );
112       return "";
113     }
114   }
115   
116   public java.lang.String JavaDoc recv( java.io.InputStream JavaDoc inStream, int nLen ) {
117   /**
118    * Receives data from server with specific
119    * size.
120    * Parameters:
121    * o inStream - InputStream to receive
122    * the data;
123    * o nLen - The buffer size;
124   */

125     
126     if( inStream == null )
127       return "";
128     
129     try {
130       int nRead;
131       char[] aBuffer = new char[nLen];
132       BufferedInputStream inBuffer = new BufferedInputStream( inStream );
133       InputStreamReader inReader = new InputStreamReader( inBuffer, "8859_1" );
134
135       
136       nRead = inReader.read( aBuffer, 0, nLen );
137
138       if( nRead == nLen )
139         return String.valueOf( aBuffer );
140       else
141         return "";
142       
143     } catch( IOException e ) {
144       System.err.println( "JIOStream.recv(2) - " + e );
145       return "";
146     }
147   }
148   
149   public boolean recv( java.io.InputStream JavaDoc inStream, java.util.HashMap JavaDoc<String JavaDoc, String JavaDoc> hash, boolean isSpaceSeparator ) {
150   /**
151      Receives data from server.
152      Parameters:
153       * inStream - InputStream to receive
154         the data;
155       * hash - The output hash with parsed
156         parameters;
157       * isSpaceSeparator - The Space char
158         is significant to build keys/values;
159   */

160
161     if( ( inStream == null ) || ( hash == null ) )
162       return false;
163     
164     try {
165       BufferedInputStream inBuffer = new BufferedInputStream( inStream );
166       InputStreamReader inReader = new InputStreamReader( inBuffer, "8859_1" );
167       
168       if( !JKeyParser.parseKeys( inReader, hash, isSpaceSeparator ) ) {
169         System.err.println( "JIOStream() - recv(3) - parser error" );
170         return false;
171       }
172
173     } catch( IOException e ) {
174       System.err.println( "JIOStream.recv(3) - " + e );
175       return false;
176     }
177
178     return true;
179   }
180   
181   public boolean recv( java.io.InputStream JavaDoc inStream, java.util.HashMap JavaDoc<String JavaDoc, String JavaDoc> hash ) {
182   /**
183      Receives data from server.
184      Parameters:
185       * inStream - InputStream to receive
186         the data;
187       * hash - The output hash with parsed
188         parameters;
189   */

190
191     return recv( inStream, hash, true );
192   }
193 }
194
195 // JIOStream class
Popular Tags