iamzken

独立思考,怀疑一切!

JAVA实现远程文件读取!



import java.io.*;
import java.net.*;
public class RemoteFileClient
{
PRotected String hostip;
protected int hostPort;
protected BufferedReader socketReader;
protected PrintWriter socketWriter;


public static void main(String[] args)
{
RemoteFileClient remoteFileClient = new RemoteFileClient("127.0.0.1", 3000);
remoteFileClient.setUpConnection();
String fileContents =remoteFileClient.getFile("E:\RemoteFile.txt");
remoteFileClient.tearDownConnection();
System.out.println(fileContents);
}
//==========================
public RemoteFileClient(String aHostIp, int aHostPort) 
{
hostIp = aHostIp;
hostPort = aHostPort;
}
//===========================
public void setUpConnection()
{
try
{
Socket client = new Socket(hostIp, hostPort);
socketReader = new BufferedReader(
new InputStreamReader(client.getInputStream()));
socketWriter = new PrintWriter(client.getOutputStream());
} catch (UnknownHostException e) {
System.out.println("Error setting up socket connection: unknown host at " + hostIp + ":" + hostPort);
} catch (IOException e) {
System.out.println("Error setting up socket connection: " + e);
}
}
//=============================
public String getFile(String fileNameToGet)
{
StringBuffer fileLines = new StringBuffer();
try 
{
socketWriter.println(fileNameToGet);
socketWriter.flush();
String line = null;
while ((line = socketReader.readLine()) != null)
fileLines.append(line + " ");

catch (IOException e) 
{
System.out.println("Error reading from file: " + fileNameToGet);
}
return fileLines.toString();
}
//========================
public void tearDownConnection() 
{
try
{
socketWriter.close();
socketReader.close();

catch (IOException e) 
{
System.out.println("Error tearing down socket connection: " + e);
}
}
//=========================

}
=================================================================



服务器端
=========
import java.io.*;
import java.net.*;
public class RemoteFileServer {
protected int listenPort = 3000;

public static void main(String[] args)
{
RemoteFileServer server = new RemoteFileServer();
server.acceptConnections();
}


public void acceptConnections() {
try {
ServerSocket server = new ServerSocket(listenPort);
Socket incomingConnection = null;
while (true) {
incomingConnection = server.accept();
handleConnection(incomingConnection);
}
} catch (BindException e) {
System.out.println("Unable to bind to port " + listenPort);
} catch (IOException e) {
System.out.println("Unable to instantiate a ServerSocket on port: " + listenPort);
}
}


public void handleConnection(Socket incomingConnection)
{
try
{
OutputStream outputToSocket = incomingConnection.getOutputStream();
InputStream inputFromSocket = incomingConnection.getInputStream();
BufferedReader streamReader =
new BufferedReader(new InputStreamReader(inputFromSocket));
FileReader fileReader = new FileReader(new File(streamReader.readLine()));
BufferedReader bufferedFileReader = new BufferedReader(fileReader);
PrintWriter streamWriter =
new PrintWriter(incomingConnection.getOutputStream());
String line = null;
while ((line = bufferedFileReader.readLine()) != null)
{
streamWriter.println(line);
}
fileReader.close();
streamWriter.close();
streamReader.close();

catch (Exception e)
{
System.out.println("Error handling a client: " + e);
}
}

}






===========================================
输出结果:


---------------看!我读取了E:\RemoteFile.txt啊!
================================================
Wrapping up the server
Before we move on to another, more practical example, let´s review the steps to create and
use a ServerSocket:
1. Instantiate a ServerSocket with a port on which you want it to listen for incoming
client connections (throws an Exception if there´s a problem).
2. Call accept() on the ServerSocket to block while waiting for connection.
3. Get the streams on that underlying Socket for reading and writing.
4. Wrap the streams as necessary to simplify your life.
5. Read from and write to the Socket.
6. Close your open streams (and remember, never close your Reader before your Writer).
You can find the complete code listing for RemoteFileServer at Code listing for
RemoteFileServer on page 33.


===================================
Wrapping up the server
Before we move on to another, more practical example, let´s review the steps to create and
use a ServerSocket:
1. Instantiate a ServerSocket with a port on which you want it to listen for incoming
client connections (throws an Exception if there´s a problem).
2. Call accept() on the ServerSocket to block while waiting for connection.
3. Get the streams on that underlying Socket for reading and writing.
4. Wrap the streams as necessary to simplify your life.
5. Read from and write to the Socket.
6. Close your open streams (and remember, never close your Reader before your Writer).
================================== 
阅读更多
个人分类: 解决方案 JAVA
上一篇设计模式-单例模式(singleton)
下一篇通过java提供的URL类包读取网上的文件
想对作者说点什么? 我来说一句

JAVA实现远程文件读取

2014年08月15日 47KB 下载

java实现properties文件读取

2016年12月02日 549B 下载

java 实现DBF文件读取与创建

2017年06月22日 26KB 下载

最大流的java实现

2012年11月13日 9KB 下载

mfc实现bmp文件读取

2010年06月04日 50KB 下载

java简单写字板

2014年05月13日 5KB 下载

java实现决策树ID3算法

2013年10月17日 224KB 下载

没有更多推荐了,返回首页

关闭
关闭