gpt4 book ai didi

java - Openfileinput 返回空指针异常

转载 作者:行者123 更新时间:2023-12-01 15:11:23 25 4
gpt4 key购买 nike

我使用以下代码来创建和写入文件

 FileOutputStream fOut = mcontext.openFileOutput("msg.txt",Context.MODE_WORLD_READABLE);
OutputStreamWriter osw = new OutputStreamWriter(fOut);
osw.write("abc");
osw.flush();
osw.close();

但是在 LOG cat 中,它在上述代码的第一行给出了空指针异常。

这是完整的代码

public class Server implements Runnable 
{
private String address ="127.0.0.1";
private String add="127.0.0.2";
private static Context mcontext;
byte[] buf = new byte[256];
DatagramSocket socket;

@Override

public void run()

{
try{

InetAddress serveradd = InetAddress.getByName(address);
InetAddress clientadd = InetAddress.getByName(add);
socket=new DatagramSocket(6000,serveradd);
Log.d("UDP", "S: Connecting...");


DatagramPacket packet=new DatagramPacket(buf,buf.length);
socket.receive(packet);
Log.d("UDP", "S: Receiving...");

/* Receive the UDP-Packet */
String data=new String(packet.getData());
String phno=data.substring(0,9);
String identity=data.substring(10,14);




//FileWriter f = new FileWriter("/sdcard/download/msg.txt");
// I/O operation
FileOutputStream fOut = mcontext.openFileOutput("msg.txt",Context.MODE_WORLD_READABLE);
OutputStreamWriter osw = new OutputStreamWriter(fOut);
osw.write("gfdffg");
osw.flush();
osw.close();



Log.d("UDP", "S: ReceivedJI: '" + new String(packet.getData()) + "'");
Log.d("UDP", "S: Done.");
//Toast.makeText(context.getApplicationContext(),"received"+new String(packet.getData()),Toast.LENGTH_LONG).show();
// if(TextUtils.isDigitsOnly(phno) && identity.equals("novel"))
// {
byte[] bufsend =("hi").getBytes();
Log.d("UDP", "S: sending.");
DatagramPacket packetsend=new DatagramPacket(bufsend,bufsend.length,clientadd,5000);
socket.send(packetsend);
Log.d("UDP", "S: send.'"+bufsend+"'");
//}
//else
// {
//Log.d("UDP", "S: not matched.");
// }
}
catch (Exception e)
{
Log.e("UDP", "S: Error", e);
e.printStackTrace();
//Toast.makeText(context.getApplicationContext(),"received"+e,Toast.LENGTH_LONG).show();
}

}

}

任何帮助将不胜感激

最佳答案

当您使用mcontext时,您没有在代码中的任何位置设置它。所以变量是null。您应该为您的 Runnable 提供一个接受 Context 的构造函数:

public Server(Context context) {
mcontext = context;
}

因此您可以设置 mcontext 变量。另外,不要使其静态。

关于java - Openfileinput 返回空指针异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12303864/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com