📄 filesend.java
字号:
/*
*该类为网络上文件传输提供支持
*
*/
package com.hs ;
import java.io.* ;
import java.net.* ;
import javax.swing.* ;
import java.util.Hashtable ;
public class FileSend {
//向单个目标发送文件
public void sendFile(Socket s , File fileName) {
try {
byte[] b = new byte[1024 * 8] ;//传送速率
//建立到服务器的输出流
OutputStream os = s.getOutputStream() ;
//建立文件的输出流
FileInputStream fis = new FileInputStream(fileName) ;
int size = fis.available()/(1024 * 8) + 1 ;
//确定文件大小
os.write(size) ;
//传文件
for (int i = 0; i<size ; i++) {
fis.read(b) ;
os.write(b) ;
}
}
catch (Exception ex) {
ex.printStackTrace() ;
}
}
public void sendFile(Hashtable ht , File fileName) {
try {
for(Object o : ht.keySet()) {
Socket s = (Socket)ht.get(o) ;
this.sendFile(s , fileName) ;
}
}catch(Exception ex) {
ex.printStackTrace() ;
}
}
//想表中单个
public void fileReceive(Socket s , File fileName ) {
try {
byte[] b = new byte[1024 * 8] ;
//建立网络的输入流
InputStream is = s.getInputStream() ;
FileOutputStream fos = new FileOutputStream(fileName) ;
int size = is.read() ;
System.out.println (size) ;
for (int i = 0; i<size ; i++) {
is.read(b) ;
fos.write(b) ;
}
}
catch (Exception ex) {
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -