android 写空指针,写下文本内容时bufferedwriter一直显示空指针,求指教

写入文本内容时bufferedwriter一直显示空指针,求指教

package com.example.android_32_chatclinet;

import java.io.BufferedReader;

import java.io.BufferedWriter;

import java.io.IOException;

import java.io.InputStream;

import java.io.InputStreamReader;

import java.io.OutputStream;

import java.io.OutputStreamWriter;

import java.net.Socket;

import java.net.UnknownHostException;

import java.util.ArrayList;

import android.os.AsyncTask;

import android.os.Bundle;

import android.support.v7.app.ActionBarActivity;

import android.util.Log;

import android.view.View;

import android.view.View.OnClickListener;

import android.widget.EditText;

import android.widget.ListView;

public class MainActivity extends ActionBarActivity implements OnClickListener {

ListView lv;

EditText et;

MyAdapter adapter;

ArrayList list = new ArrayList();

BufferedWriter bw;

@Override

protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.activity_main);

findViewById(R.id.button1).setOnClickListener(this);

lv = (ListView) findViewById(R.id.listView1);

et = (EditText) findViewById(R.id.editText1);

adapter = new MyAdapter(this, list);

lv.setAdapter(adapter);

this.connectServer();

}

@Override

public void onClick(View v) {

// TODO Auto-generated method stub

if(v.getId() == R.id.button1){

String text = et.getText().toString();

UserData userData = new UserData("自己说:", text, true);

list.add(userData);

adapter.notifyDataSetChanged();

try {

Log.e("TEST","text" + text);

Log.e("TEST","bw" + bw);

bw.write(text + "\n");   //!!!!!!!!!!!!!!!!!!!!!!!!!这里一直显示NullPointerException!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

bw.flush();

} catch (IOException e) {

// TODO Auto-generated catch block

e.printStackTrace();

}

}

}

//连接服务器

private void connectServer(){

new AsyncTask(){

@Override

protected Void doInBackground(String... params) {

// TODO Auto-generated method stub

try {

Socket socket = new Socket(params[0], 3333);

OutputStream os = socket.getOutputStream();

OutputStreamWriter osw = new OutputStreamWriter(os, "utf-8");

bw = new BufferedWriter(osw);

//os.write("hello\n".getBytes());

InputStream is = socket.getInputStream();

InputStreamReader isr = new InputStreamReader(is, "utf-8");

BufferedReader br = new BufferedReader(isr);

String text = null;

while((text = br.readLine()) != null){

//Log.e("Test", "text = " + text);

publishProgress(text);

}

} catch (UnknownHostException e) {

// TODO Auto-generated catch block

e.printStackTrace();

} catch (IOException e) {

// TODO Auto-generated catch block

e.printStackTrace();

}

return null;

}

@Override

protected void onProgressUpdate(String... values) {

// TODO Auto-generated method stub

super.onProgressUpdate(values);

UserData userData = new UserData("别人说:", values[0], false);

list.add(userData);

adapter.notifyDataSetChanged();

//tv.setText(values[0]);

}

}.execute("192.168.1.104");

}

}

为什么这里的bw为空T T 谁能帮我调调

------解决思路----------------------

bw在点击按钮前没有定义,在之前定义下

------解决思路----------------------

赞同楼上,BufferedWriter bw;只声明了,没初始化。

然后直接用了bw.write(text + "\n");

------解决思路----------------------

引用:您看我83行的那一句不是初始化吗?

你看下有执行到bw那句么,如果socket出问题,可能不会执行。

例如没加访问网络的权限……

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值