JAVA实现远程文件读取
类别: JSP教程
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);
}
}
}
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);
}
}
}
- 上一篇: JAVA 写的文件浏览器
- 下一篇: JAVA实现:文件选择器中运行.EXE文件
-= 资 源 教 程 =-
文 章 搜 索