JAVA实现远程文件读取!
来源:互联网 发布:2016年大数据薪资待遇 编辑:程序博客网 时间:2024/06/02 13:42
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实现远程文件读取!
- JAVA实现远程文件读取!
- JAVA实现远程文件读取
- java实现远程文件的读取
- java 读取远程文件 实现继传。。。
- Java远程实现Linux文件内容读取.
- java读取远程文件
- java读取远程文件
- Java读取远程文件
- java读取远程文件
- java读取远程文件
- JAVA实现环形缓冲多线程读取远程文件
- 用JAVA实现缓冲多线程无阻塞读取远程文件
- java读取远程共享文件
- java读取远程共享文件
- java 读取远程共享文件
- java读取远程主机文件
- java 利用SMB读取远程文件
- 【转载】PHP中超时提示Fatal error: Maximum execution time of 30 seconds exceeded的解决方案
- ecshop商品详情页显示组合套餐
- 分享到新浪等
- 【转载】Smarty中Foreach的使用
- 网页载入效果,跳转另一页面代码
- JAVA实现远程文件读取!
- ecshop 商品详情页商品放大镜功能
- ECSHOP ie9下的切换选项卡问题,不能切换的问题处理
- 解决浏览器出现“stack overflow at line:0”
- u盘无法格式化
- ecshop加广告出现广告位的宽度值必须在1到1024之间
- linux下删除文件夹命令
- linux下解压缩文件
- linux的convert图片处理工具[转载]