您现在的位置: 首页 > 网站导航收录 > 百科知识百科知识
在上海,想培训一下JAVA多少钱?
文件,目录,字节在上海,想培训一下JAVA多少钱?
发布时间:2020-12-06加入收藏来源:互联网点击:
-
public static boolean createFile(String descFileName):创建文件。public static boolean createDirectory(String descDirName):创建目录。public static boolean copyFile(String srcFileName, String descFileName):复制文件。public static boolean copyDirectory(String srcDirName, String descDirName):复制目录。public static boolean deleteFile(String fileName):删除文件。public static boolean deleteDirectory(String dirName):删除目录。public static void writeToFile(String fileName, String content, boolean append):向文件中写入内容。
03、网络套接字——Socket
虽然网络套接字(Socket)并不在java.io包下,但它和输入输出流密切相关。File和Socket是两组主要的数据传输方式。
Socket是描述计算机之间完成相互通信的一种抽象。可以把 Socket比作为两个城市之间的交通工具,有了交通工具(高铁、汽车),就可以在城市之间来回穿梭了。交通工具有多种,每种交通工具也有相应的交通规则。Socket也一样,也有多种。大部分情况下,我们使用的都是基于TCP/IP的套接字——一种稳定的通信协议。
假设主机A是客户端,主机B是服务器端。客户端要与服务器端通信,客户端首先要创建一个Socket实例,操作系统将为这个Socket实例分配一个没有被使用的本地端口号,并创建一个套接字数据结构,直到这个连接关闭。
示例如下。
Socket socket = new Socket(serverIp, serverPort); BufferedInputStream in = new BufferedInputStream(socket.getInputStream()); BufferedOutputStream out = new BufferedOutputStream(socket.getOutputStream()); 复制代码
与之对应的,服务端需要创建一个ServerSocket实例,之后调用accept()方法进入阻塞状态,等待客户端的请求。当一个新的请求到来时,将为这个连接创建一个新的套接字数据结构。
示例如下。
ServerSocket server = new ServerSocket(port); Socket socket = server.accept(); InputStream in = new BufferedInputStream(socket.getInputStream()); OutputStream out = new BufferedOutputStream(socket.getOutputStream()); 复制代码
Socket一旦打通,就可以通过InputStream和OutputStream进行数据传输了。
04、压缩
Java I/O 支持压缩格式的数据流。在Socket通信中,我常用GZIPOutputStream和GZIPInputStream来对数据流进行简单地压缩和解压。
压缩的好处就在于能够减小网络传输中数据的体积。代码如下。
package com.cmower.common.util; import java.io.ByteArrayInputStream; import java.io.ByteArrayOutputStream; import java.io.IOException; import java.util.zip.GZIPInputStream; import java.util.zip.GZIPOutputStream; /** * 压缩解压 */ public class CompressionUtil { public static byte[] compress(byte[] data) throws IOException { ByteArrayOutputStream bos = new ByteArrayOutputStream(); byte[] result = null; GZIPOutputStream zos = new GZIPOutputStream(bos); zos.write(data); zos.finish(); zos.flush(); result = bos.toByteArray(); zos.close(); bos.close(); return result; } public static byte[] deCompress(byte[] in) throws IOException { ByteArrayOutputStream outStream = new ByteArrayOutputStream(); GZIPInputStream inStream = new GZIPInputStream(new ByteArrayInputStream(in)); byte[] buf = new byte[1024]; while (true) { try { int size = inStream.read(buf); if (size <= 0) break; outStream.write(buf, 0, size); } catch (Exception e) { e.printStackTrace(); break; } } inStream.close(); outStream.close(); return outStream.toByteArray(); } }
上一篇:深圳每年三十万人口迁入,那么哪里的人口迁出最多?房价跌吗?
下一篇:返回列表
相关链接 |
||
网友回复(共有 0 条回复) |