public String serverip;
serverip 是全局字符串变量
我希望我的Socket应用程序从文本文件中读取IP,该文件保存在 Server.txt 文件中。我用过这个:
try {
FileInputStream instream = new FileInputStream("mnt/sdcard/Server.txt");
if (instream != null) {
InputStreamReader inputreader = new InputStreamReader(instream);
BufferedReader buffreader = new BufferedReader(inputreader);
serverip = buffreader.readLine();
instream.close();
}
} catch (Exception ex) {
}
它可以很好地从文件中读取IP,但不会将IP保存到 serverip 变量。如果我使用像"192.168.1.100"
这样的静态字符串,它可以正常工作但是当从文本文件中读取一行时,它不会将该行保存到 serverip
答案 0 :(得分:0)
首先确保添加:
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>
如果还是不行,试试这个:
File sdcard = Environment.getExternalStorageDirectory();
//Get the text file
File file = new File(sdcard,"Server.txt");
//Read text from file
StringBuilder text = new StringBuilder();
try {
BufferedReader br = new BufferedReader(new FileReader(file));
String line;
while ((line = br.readLine()) != null) {
text.append(line);
text.append('\n');
}
}
catch (IOException e) {
//You'll need to add proper error handling here
}
serverip = text;
答案 1 :(得分:0)
我发现从文本文件中读取的字符串就像“192.168.1.100”。注意第一个位置的空字符。虽然文本文件在字符串的开头没有空格或任何其他字符,但它仍然在第一个位置保存结果为空值,所以我使用了subString(1)并将其传递给Socket(ip,port)