⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 xfile.java

📁 这是一个用jsp+Oracle开发的联系人客户关系管理系统!
💻 JAVA
字号:
import java.io.*;
import java.net.*;
import net.jxta.pipe.*;
import net.jxta.impl.endpoint.*;

public class XFile
		implements PipeMsgListener
{
	P2PSocket pps = new P2PSocket();
	BaseMessage bm = new BaseMessage();

	public XFile()
	{
		pps.setInputPipeName("001");
		pps.setInListener(this);
		pps.bind();
		pps.setOutListener(pps);
		pps.connect("002");
	}

	public void pipeMsgEvent(PipeMsgEvent event)
	{
		String temp = null;
		MessageImpl mi = (MessageImpl)event.getMessage();

		temp = mi.getString(BaseMessage.FILE_MESSAGE_TYPE);
		if(temp.equals(BaseMessage.FILE_LIST_REQEST))
		{
			toFileListRequest(mi);
			return;
		}
		if(temp.equals(BaseMessage.FILE_LIST))
		{
			toFileList(mi);
			return;
		}
		if(temp.equals(BaseMessage.FILE_DOWNLOAD_REQEST))
		{
			toFileDownloadRequest(mi);
			return;
		}
		if(temp.equals(BaseMessage.FILE_DOWNLOAD))
		{
			toFileDownload(mi);
			return;
		}
		if(temp.equals(BaseMessage.FILE_UPLOAD))
		{
			toFileUpload(mi);
			return;
		}
	}

	public void doFileListRequest(MessageImpl mi)
	{
		System.out.println("捕获一个本地共享文件列表的请求!");
		pps.send(bm.newFileMessage(this.listFile(),pps.getOutputPipeName(),pps.getInputPipeName(),bm.FILE_LIST,"Temp");
	}

	public void doFileList(MessageImpl mi)
	{
		System.out.println("捕获一个文件列表的请求!");
		MessageElementImpl mei = (MessageElementImpl)mi.getElement(BaseMessage.FILE_LIST);
		this.displayFile(mei.getStream());
	}

	public void doFileDownloadRequest(MessageImpl mi)
	{
		System.out.println("捕获一个下载本地共享文件列表的请求!");
		String file_name = mi.getString(bm.FILE_NAME);
		pps.send(bm.newFileMessage(file2Stream(file_name),pps.getOutputPipeName(),pps.getInputPipeName(),bm.FILE_DOWNLOAD,file_name);
	}

	public void doFileDownload(MessageImpl mi)
	{
		System.out.println("捕获一个需要下载的共享文件!");
		MessageElementImpl mei = (MessageElementImpl)mi.getElement(BaseMessage.FILE_DOWNLOAD);
		String file_name = mi.getString(bm.FILE_NAME);
		save2File(mei.getStream(),file_name);
	}

	public void doFileUpload(MessageImpl mi)
	{
		System.out.println("捕获一个上传的共享文件!");
		MessageElementImpl mei = (MessageElementImpl)mi.getElement(BaseMessage.FILE_UPLOAD);
		String file_name = mi.getString(bm.FILE_NAME);
		save2File(mei.getStream(),file_name);
	}

	public void save2File(InputStream is,String fname)
	{
		int length;
		byte buf[] = new byte[1024];
		try
		{
			FileOutputStream fos = new FileOutputStream("share/"+fname);
			BufferedOutputStream bos = new BufferedOutputStream(fos);
			BufferedInputStream bis = new BufferedInputStream(is);
			while((length=bis.read(buf,0,1024))!=-1)
			{
				bos.write(buf,0,length);
				bos.flush();
			}
			bis.close();
			bos.close();
			fos.close();
		}catch(IOException ioe)
		{
			System.out.println("写入文件错误:"+ioe);
		}
	}

	public InputStream file2Stream(String file)
	{
		try
		{
			FileInputStream fis = new FileInputStream("share/"+file);
			return fis;
		}catch(IOException ioe)
		{
			System.out.println("无法读取本地文件");
			System.exit(-1);
		}
		return null;
	}

	public InputStream listFile()
	{
		try
		{
			String userpath = System.getProperty("user.dir");
			URL url = new RUL("file:///"+userpath+"/share");
			return url.openStream();
		}catch(MalformedURLException me)
		{
			System.out.println("获取文件共享名出错");
			System.exit(-1);
		}catch(IOException ioe)
		{
			System.out.println("获取文件共享名出I/O错");
			System.exit(-1);
		}
		return null;
	}

	public void displayFile(InputStream is)
	{
		try
		{
			BufferedReader br = new BufferedReader(new InputStreamReader(is));
			String s = br.readLine();
			while(s!-null)
			{
				toScreen(s);
				s = br.readLine();
			}
		}catch(IOException ioe)
		{
			System.out.println("显示文件出I/O错");
			System.exit(-1);
		}
	}

	public void toScreen(String s)
	{
		System.out.println(s);
	}

	public static void main(String args[])
	{
		XFile xf = new XFile();
		xf.pps.send(xf.bm.newFileMessage(null,null,null,BaseMessage.FILE_LIST_REQUEST,"Temp"));
		sf.pps.send(xf.bm.newFileMessage(null,null,null,BaseMessage.FILE_DOWNLOAD_REQUEST,"Download.txt"));
	}


};

⌨️ 快捷键说明

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