java实现远程文件的读取
2010-07-09 01:05
543 查看
客户端:
服务器端:
先运行服务器端,再运行客户端,就可以得到远程文件的输出内容了。
package com.test.plainclass;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:test.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 + "/n");} 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);}}// =========================}
服务器端:
package com.test.plainclass;import java.io.BufferedReader;import java.io.File;import java.io.FileReader;import java.io.IOException;import java.io.InputStream;import java.io.InputStreamReader;import java.io.PrintWriter;import java.net.BindException;import java.net.ServerSocket;import java.net.Socket;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远程实现Linux文件内容读取.
- JAVA实现环形缓冲多线程读取远程文件
- java 读取远程文件 实现继传。。。
- JAVA实现远程文件读取!
- Http协议+java httpURLConnetion实现远程读取文件+chrome DEBUG Timing
- JAVA实现远程文件读取
- JAVA实现远程文件读取!
- java实现远程储存读取文件
- java实现决策树ID3算法(文件读取)
- Java中通过dom4j读取配置文件实现抽象工厂+反射
- java代码-----实现有键盘获得的字符串存储在文件中,并从文件中读取后显示在屏幕上
- java 利用SMB读取远程文件
- Java利用ssh协议实现从远程Linux服务器下载文件和文件夹
- JAVA代码实现远程服务器的文件操作
- JAVA远程连接linux服务器读取文件(JSch)
- JAVA实现:将文件从本地上传到HDFS上、从HDFS上读取等操作
- Java实现文件远程上传和下载
- 用java和JavaScript读取一个JS文件中字符个数的实现
- java 实现以字符为单位读取文件(3)
- 朝花夕拾:Java中实现对EXCEL文件的读取