黑马程序员技术交流社区
标题:
用while遍历目录的结束条件是什么?
[打印本页]
作者:
未发光的金子
时间:
2014-4-21 22:33
标题:
用while遍历目录的结束条件是什么?
代码如下,我这调用它根本停不下来啊!!!
public void dir (String serName){
System.out.println("以下是目录:");
try {
s = new Socket("10.12.39.27",8888);//连接服务器
dis = new DataInputStream(new BufferedInputStream(s
.getInputStream()));//定义数据输入流
int BUFSIZE = 8912;
byte[] buf = new byte[BUFSIZE];
System.out.println("chdn");
while (true) {
int data = 0;//read用来保存从文件中读取过来的数据
if (dis != null) {
data= dis.read(buf);//遇到输入流的末尾,返回-1
String str = new String(buf);
System.out.println(str);
}//读两次才执行跳出
else if (data== -1) {
System.out.println("跳出");
break;
}
System.out.println("ssssssss");
}
System.out.println("zheng");
} catch (IOException e) {
System.out.println("错了");
} finally {
try {
dis.close();
} catch (IOException e) {
e.printStackTrace();
}
try {
s.close();
} catch (IOException e) {
e.printStackTrace();
}
System.out.println("asdf");
}
}
复制代码
作者:
忘川
时间:
2014-4-21 22:44
本帖最后由 忘川 于 2014-4-21 22:49 编辑
boolean flag=true;//定义一个标志位控制
while ( flag ) {
int data = 0;
if (dis != null) {
data= dis.read(buf);
String str = new String(buf);
System.out.println(str);
}
else if (data== -1) {
System.out.println("跳出");
flag=false;
}
System.out.println("ssssssss");
}
复制代码
复制代码
作者:
别小乐
时间:
2014-4-21 23:39
我想你的问题可能就在这里。
else if (data== -1) {
System.out.println("跳出");
break;
}
复制代码
对于break关键字来说,你这样写在if语句中是没有作用, 我们都知道{} 这个双括号代表的是作用于,你把break放在System.out.println()后面,但是break还是在if语句块的作用域。
也就是说,你这段代码,使用与不使用break几乎没有区别,因为到右括号,作用于就结束了,对于while而言,brek自然也就没有作用了。
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2