【问题标题】:Can't save results of BufferedReader.readLine() to String无法将 BufferedReader.readLine() 的结果保存到字符串
【发布时间】:2017-01-10 21:14:45
【问题描述】:

我可以用Log.e("debug", e.getMessage()) 记录BufferedReader.readLine() 的结果,但不能将结果分配给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();

【问题讨论】:

标签: java android


【解决方案1】:

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

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

【讨论】:

  • 如果你能写出你的意思会很有帮助,我实际上是新手..
  • 您为s 分配了一个值,然后对s 没有执行任何操作。显示一个值需要代码来显示它。这意味着将文本值应用到像TextView 这样的显示小部件。 developer.android.com/reference/android/widget/TextView.html
  • 在不知道什么是 textview 方面,我并不陌生,我的意思是我对我的程序中的网络不熟悉.. 当我尝试敬酒时,它只会显示一个 null价值..
  • 您的代码示例显示没有尝试显示s。这与网络无关。
猜你喜欢
  • 2018-12-08
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-02-19
  • 2014-07-17
  • 1970-01-01
  • 2018-10-01
  • 2012-04-04
相关资源
最近更新 更多