黑马程序员技术交流社区
标题:
什么时候需要关闭流,什么时候不需要积累
[打印本页]
作者:
ImKing
时间:
2016-7-13 23:08
标题:
什么时候需要关闭流,什么时候不需要积累
本帖最后由 ImKing 于 2016-7-13 23:14 编辑
public static void main(String[] args) throws UnknownHostException,
IOException {
// 1.提示输入要上传的文件路径, 验证路径是否存在以及是否是文件夹
File file = getFile();
// 2.发送文件名到服务端
Socket socket = new Socket("127.0.0.1", 12345);
BufferedReader br = new BufferedReader(new InputStreamReader(
socket.getInputStream()));
PrintStream ps = new PrintStream(socket.getOutputStream());
ps.println(file.getName());
// 6.接收结果, 如果存在给予提示, 程序直接退出
String result = br.readLine(); // 读取存在后不存在的结果
if ("存在".equals(result)) {
System.out.println("您上传的文件已经存在,请不要重复上传");
socket.close();
return;
}
// 7.如果不存在, 定义FileInputStream读取文件, 写出到网络
FileInputStream fis = new FileInputStream(file);
byte[] arr = new byte[8192];
int len;
while ((len = fis.read(arr)) != -1) {
ps.write(arr, 0, len);
}
fis.close();
socket.close();
}
复制代码
代码分析:
(1)由于关闭此套接字也将会关闭该套接字的InputStream 和 OutputStream,所以main()方法中不必再手工关闭BufferedReader、PrintStream流对象(已与socket绑定)
(2)而文件流 FileInputStream :关闭此文件输入流并释放与此流有关的所有系统资源,则需要手动关闭
作者:
地狱蓝枫
时间:
2016-7-14 21:08
谢谢分享~
作者:
呆呆的小呆
时间:
2016-7-14 21:48
666666666666666666
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2