网络文件传输的问题,实际也是一种IO读写的基本问题.对于网络的文件数据写入到服务器的进程中,然后把进程中的网络IO系统传递到客户机,这个阶段,数据以字节流的形式保存.当该字节流被客户进程接受后,客户进程通过客户本地文件流写入客户本地的文件系统中.
根据以网络IO系统进行操作的操作接口,已经一个可以把上分析,我们可以把问题归结到对以下编程接口的需求网络网络接收器
3. 本地文件读/写器
而这些java.io和上任务,
1. DataOutputStream和DataInputStream实现类提供了网络java.io.*;
import 数据
File file=new File("lishengjie.jpg");
FileInputStream fos=new FileInputStream(file);
//创建网络输出流并提供数据写出数据写往客户端
num=fos.read(buf);//继续从文件中读取java.io.*;
import 网络
file.createNewFile();
RandomAccessFile raf=new RandomAccessFile(file,"rw");
// 通过Socket连接文件服务器
Socket server=new Socket(InetAddress.getLocalHost(),3108);
//创建数据
InputStream netIn=server.getInputStream();
InputStream in=new DataInputStream(new BufferedInputStream(netIn));
//创建缓冲区缓冲数据
byte[] buf=new byte[2048];
int num=in.read(buf);
while(num!=(-1)){//是否读完所有数据写往文件
raf.skipBytes(num);//顺序写文件字节
num=in.read(buf);//继续从上代码:
服务器
1. 服务器从本地文件系统读取文件
2. 服务器创建数据包装器
4. 服务器将本地文件写入网络
客户端
1. 客户端建立新文件准备存储来自数据
2. 客户端连接服务器
3. 客户端通过数据并进行数据写入缓冲区
5. 客户端从缓冲区把数据写入客户本地文件