java - 无法将 BufferedReader.readLine() 的结果保存到 String

标签 java android

我可以记录 BufferedReader.readLine() 的结果与 Log.e("debug", e.getMessage()) ,但无法将结果分配给 String 。这是为什么?

new Thread() {
    @Override
    public void run() {
        try {
            //Connecting
            Log.i(debugString, "Attempting to connect to server");
            socket = new Socket(hostname, portnumber);
            Log.i(debugString, "Connection established!");

            //receive message from server
            BufferedReader br = new BufferedReader(new InputStreamReader(socket.getInputStream()));

            Log.e(debugString, br.readLine());  // This works, but really...
            String s = br.readLine(); // ...this is how I *want* to save it.
        } catch (IOException e) {
            Log.e(debugString, e.getMessage());
        }
    }
}.start();

最佳答案

您没有显示任何尝试显示 readLine() 调用结果的代码。如果您希望结果显示在您的应用程序中,则必须在您的应用程序中显示结果。您将读取的值分配给变量s(顺便说一句,这不是一个好名字),然后默默地删除引用,从而在显示返回值之前丢失它。

此外,您需要处理IOException,而不仅仅是记录它,并且您应该在离开子例程之前关闭 I/O 连接。

关于java - 无法将 BufferedReader.readLine() 的结果保存到 String,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41578535/

相关文章:

java - 连接mysql数据库失败

android - 如何在android XML中连接多个字符串?

android - 何时删除 SharedPreferences?

android - 如何缩放android中已经存在的位图?

java - 二叉树的有序迭代器

java - 如何在 android 中使用 "dynamic"视频文件填充 ListView ?

java - Hibernate:ManyToMany单向仅返回一条记录

java - 使用Oracle日期字段中的cachedrowset时如何获取完整的日期和时间数据

android - 使用 NDK( native 代码)的应用程序下降。我怎样才能找出原因?

android - 智能卡和安卓