JAVA实现远程文件读取!

转载 2013年12月04日 14:28:56


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实现远程文件读取

  • 2014年08月15日 15:43
  • 47KB
  • 下载

java 读取远程文件 实现继传。。。

import java.io.BufferedInputStream; import java.io.DataOutputStream; import java.io.File; import ...

JAVA读取远程文件

  • 2012年06月04日 15:00
  • 112KB
  • 下载

java 远程读取读写文件,附件

  • 2011年04月29日 13:18
  • 3KB
  • 下载

Java 使用SMB读取远程文件遇到的问题

前言  最近在着手语音识别系统,大致的功能是将语音转成文本后对文本内容进行一系列的分析。在文本分析的过程中,需要调用公司另一个哥们提供的python接口,分析过程生成的图片是保存在他自己的电脑上并将这...
  • Dh_Chao
  • Dh_Chao
  • 2017年11月21日 09:43
  • 84

用java实现远程文件传输

  • 2010年11月16日 09:23
  • 398KB
  • 下载

JAVA远程连接linux服务器读取文件(JSch)

import com.jcraft.jsch.*; import java.awt.*;   import javax.swing.*;   import java.io.*...

Java利用SMB上传、下载、读取(内容或文件名)、复制、删除远程文件

package com.yls; import java.io.BufferedInputStream; import java.io.BufferedOutputStream; imp...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:JAVA实现远程文件读取!
举报原因:
原因补充:

(最多只允许输入30个字)