将InputStream转换为String(telnet)

时间:2013-08-28 06:33:50

标签: java string stream inputstream telnet

Apache telnet使用InputStream,我希望read作为字符串(或类似字符串的数组)。

如何将InputStream转换为更容易(对我来说)处理的事情,StringBuffer或类似事件。

3 个答案:

答案 0 :(得分:2)

您可以从IOUtils.toString(is)

考虑Apache Common IO
public static String toString(InputStream input)
                       throws IOException

来自doc:

  

此方法在内部缓冲输入,因此无需使用   的BufferedInputStream。

答案 1 :(得分:1)

您无法将InputStream转换为StringBuffer。但是如果您想使用StringBuffer,那么您可以将InputStream的输入作为int读取,并将其附加到StringBuffer,如下所示。

int i=fis.read(); //it will read Character from stream and returns ascii value of char.
StringBuffer sb=new StringBuffer();
sb.append((char)i); //This will cast int into character and append to StringBuffer.

答案 2 :(得分:0)

这就在那里:

package teln;

import static java.lang.System.out;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.net.SocketException;
import org.apache.commons.net.telnet.TelnetClient;

public final class ConnectMUD {

    private static String EOL = "/[#]/";
    private static TelnetClient tc;

    public static void main(String[] args) throws SocketException, IOException {
        tc = new TelnetClient();
        tc.connect("some_mud.com", 123);
        readLines(tc.getInputStream());
    }

    private static void readLines(InputStream in) throws IOException {

        InputStreamReader is = new InputStreamReader(in);
        StringBuilder sb = new StringBuilder();
        BufferedReader br = new BufferedReader(is);
        String read = br.readLine();

        while (read != null) {
            out.println(read);
            sb.append(read);
            read = br.readLine();
            parseLine(read);
        }
    }

    private static void parseLine(String read) {
        login(read);
    }

    private static void login(String read) {
        //hmm, how do you know when you
        //get some funky, non-standard login?
        //look for an EOL of some sort?
    }
}

那里有一些非常大的字符串,但我只关注功能。只是尝试开始解析播放da MUD的行。