fileclient.java

来自「一个简单的socket聊天工具,实现在发送文件和语音聊天等功能,还能聊天的同时听」· Java 代码 · 共 69 行

JAVA
69
字号
/*
 * Created on 2006-2-25
 *
 * TODO To change the template for this generated file go to
 * Window - Preferences - Java - Code Style - Code Templates
 */

/**
 * @author 之诸暇
 *
 * TODO To change the template for this generated type comment go to
 * Window - Preferences - Java - Code Style - Code Templates
 */
import java.io.*; 
import java.net.*;
import javax.swing.JFrame;
import javax.swing.ProgressMonitorInputStream;



public class FileClient{ 
	private JFrame myframe;
	private ProgressMonitorInputStream pm;
public FileClient(JFrame frame,String name,String host)throws Exception{ 

	myframe = frame;
	//使用本地文件系统接受网络数据并存为新文件 
	File file=new File(name); 
	file.createNewFile(); 
	RandomAccessFile raf=new RandomAccessFile(file,"rw"); 



	// 通过Socket连接文件服务器 
	Socket server=new Socket(InetAddress.getByName(host),3108); 



	//创建网络接受流接受服务器文件数据 
	InputStream netIn=server.getInputStream(); 
	InputStream in=new DataInputStream(new BufferedInputStream(netIn)); 
	pm = new ProgressMonitorInputStream(myframe,"已完成",in);


//创建缓冲区缓冲网络数据 

byte[] buf=new byte[2048]; 

int num=in.read(buf); 



while(num!=(-1)){//是否读完所有数据 

raf.write(buf,0,num);//将数据写往文件 

raf.skipBytes(num);//顺序写文件字节 

num=in.read(buf);//继续从网络中读取文件 

} 
pm.close();
in.close(); 
raf.close(); 

} 

}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?