读写图片服务器端:
package 网络编程;
import java.io.*;
import java.net.*;
public class _3_1_读写图片服务器端 {
public static void main(String[] args) throws IOException {
ServerSocket ss = new ServerSocket(7777);
System.out.println("等待连接");
Socket s = ss.accept();
System.out.println("连接成功");
//字节流适用于所有(包括图片、视频、音频)
InputStream is = s.getInputStream();
FileOutputStream fos = new FileOutputStream("/Users/meng/Desktop/搬家/图片素材/美女/1.jpg");//复制到的图片地址
//建立字节数组
byte []b = new byte[1024];
int len;
while((len=is.read(b))!=-1) {//读完就等于-1
fos.write(b,0,len);//重第一个字符开始读,读到长度为len
}
//建网络输出流(因为是两个机器传输文件)
BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(s.getOutputStream()));
bw.write("上传成功");
bw.newLine();
bw.flush();
s.close();
ss.close();
}
}
读写图片客户端:
package 网络编程;
import java.io.*;
import java.net.*;
public class _3_2_读写图片客户端 {
public static void main(String[] args) throws UnknownHostException, IOException {
Socket s = new Socket("localhost",7777);
FileInputStream fis = new FileInputStream("/Users/meng/Desktop/搬家/图片素材/1.jpg");//图片地址,将该图片复制到其他地址
//客户端获得网络流
OutputStream os = s.getOutputStream();
//建立字节数组
byte []b = new byte[1024];
int len;
while((len=fis.read(b))!=-1) {//读完就等于-1
os.write(b,0,len);//重第一个字符开始读,读到长度为len
}
s.shutdownOutput();//关闭输出流
//建一个网络输入流
BufferedReader br = new BufferedReader(new InputStreamReader(s.getInputStream()));
String str = br.readLine();
System.out.println(str);
s.close();
}
}
注意:一定要先运行服务器端再运行客户端
客户端中的图片的路径存放的是图片原本存在的路径
服务器端中的图片的路径存放的是图片即将被复制到的路径