今天尝试写了写数据报通信的C/S代码,想象的最简单的一种场景是,在Server端有一个example.txt的文件,Client端现在需要通过Server端对该文件进行读写,即Server端每收到Client端的一个请求就会从该文件中读取一个句子发送给Client端,当该文件中所有的句子都发送完毕,Server端程序便退出。当我写到对文件的读取的代码的时候,我自己一开始是这样写的:(只写部分代码)
BufferedReader in = new BufferedReader(new
FileReader("example.txt"));
String readString = null;
//readString = in.readline();
if((readString = in.readline()) == null ){
in.close();
readString = "no more sentences.";
}
作为测试使用,我一开始在example.txt里面写了四行句子,但是在运行的时候我发现总是只会打印出第二行和最后一行的句子,后来再检查代码的时候发现,自己在if语句之前多写了一句readString
=
in.readline();之所以说多写是因为每次代码执行到这里的时候就会先读取一行语句,然后在执行if判断条件语句时又会读取一行语句,所以最后就会导致读取的第一行语句被第二行语句覆盖,因此最后只要把readString
= in.readline();注释掉就ok了。
另外,readline()函数有很多需要注意的地方,在这个做个标记先,日后慢慢整理!