📄 connetfile.java
字号:
package sun.com.service.impl;
import java.io.BufferedInputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.ObjectOutputStream;
import java.net.Socket;
import java.net.UnknownHostException;
import javax.swing.JFileChooser;
import javax.swing.JOptionPane;
public class ConnetFile extends Thread {
JFileChooser je;
Socket skt;
int value=-1;
BufferedInputStream in=null;
ObjectOutputStream obj=null;
public ConnetFile(int value,JFileChooser je){
this.value=value;
this.je=je;
try {
skt=new Socket("192.168.5.15",7777);
System.out.println("文件发送连接成功");
} catch (UnknownHostException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
public void run(){
if(value==0){
File files=je.getSelectedFile();
System.out.println("发送文件");
try {
byte[] buf=new byte[1024];
in = new BufferedInputStream(new FileInputStream(files));//获得的文件的写入流
obj=new ObjectOutputStream(skt.getOutputStream());//文件输出
// obj.writeObject("$$$@@$$");//先将文件名字发送给socket
// obj.flush();
int i=0;
while(true){
int len=in.read(buf);
in.read(buf, 0, len);
obj.write(buf, 0, len);
obj.flush();//必须要刷新,不刷新肯能少度或者多读
System.out.println(i+"发送量。。");
//判断缓冲区的大小,如果大于4000了就饿休息2毫秒
if(buf.length>2000){
Thread.sleep(4);
}
}
// while(true){
// int n=in.read(buf);//表示实际上读入了多少
// if(n>0){
// obj.writeInt(n);//告诉本次传送的数量
// obj.write(buf, 0, n);//表示实际上发送了多少
// obj.flush();
// }
// if(n<1024){
// break;
// }
// System.out.println(n+"发送量");
// }
// obj.flush();
// obj.writeObject("end");
// obj.flush();
}catch (Exception e1) {
// JOptionPane.showMessageDialog(null, "File Send Error","Error",JOptionPane.ERROR_MESSAGE);
return;
}finally{
try{
if(in != null){
in.close();
}
if(obj!= null){
obj.close();
}
}
catch(IOException io){
io.printStackTrace();
}
}
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -