2013-04-09 71 views
1

我很困惑。这是一个telnet应用程序的一部分,我希望它返回一个字符串并更新一个textarea。我试图从与textArea.setText在同一类中的方法内更新textarea,但这不起作用,我知道我们应该调用方法并返回字符串。是的,我知道我应该删除“空白”,但是当我尝试它说方法返回一个int?我希望它从服务器返回一个带有文本的字符串。如果我打印到控制台它打印完全我想要的文字.... Arg!此外我使用Apache公共库。readtext = new String(buff,0,read)......是字符串,int还是数组?

public static void read() throws IOException { 

    String readtext; 

    byte[] buff = new byte[1024]; 

    int read; 

    if((read = telnetClient.getInputStream().read(buff)) > 0) { 

    readtext = new String(buff, 0, read); 

    //return readtext; 

     //System.out.println(new String(buff, 0, read)); 

    System.out.println(readtext); 

    } 

回答

1

您的答案不会返回字符串。您需要将String添加到方法签名并返回readtext变量以获取所需的文本。

试试这个:

public static String read() throws IOException { 
    String readtext;  
    byte[] buff = new byte[1024];  
    int read; 

    if((read = telnetClient.getInputStream().read(buff)) > 0) {  
     readtext = new String(buff, 0, read); 
    } 
    return readtext;  
    } 
+0

将是有益的,如果你解释了为什么你的作品和他没有。如果在正常执行流程中发现返回语句,并且后面跟有更多代码,则编译器会将后面的所有代码标记为无法访问,并拒绝编译。然而,如果使用maloneys方法,return语句是方法中最后一件事,因此是正确的:) – BlackBox 2013-04-09 13:54:04

+0

@BlackBox将编辑答案和解释... – maloney 2013-04-09 13:55:29

+1

是的,我很愚蠢,我现在看到Meloney做了什么,它的工作原理。 – user2261933 2013-04-10 16:09:57

相关问题