java网络编程存入文件
时间: 2024-09-06 20:03:35 浏览: 40
java创建txt文件并存入内容
Java网络编程可以实现网络间的数据传输,对于文件的存储,主要涉及到Java中处理网络请求的类和文件I/O操作的类。以下是一个简单的示例,使用Java网络编程将文件存储到服务器的过程:
1. 创建一个服务器端程序,使用`ServerSocket`类监听端口,等待客户端的连接请求。
2. 客户端使用`Socket`连接到服务器。
3. 客户端读取本地文件,然后将文件内容通过`OutputStream`发送给服务器。
4. 服务器端通过`InputStream`接收数据,并将其写入服务器的文件系统中。
下面是一段简单的代码示例:
服务器端:
```java
import java.net.ServerSocket;
import java.net.Socket;
import java.io.FileOutputStream;
import java.io.InputStream;
public class FileServer {
public static void main(String[] args) {
int port = 12345;
try (ServerSocket serverSocket = new ServerSocket(port)) {
System.out.println("等待客户端连接...");
Socket socket = serverSocket.accept();
System.out.println("客户端已连接");
InputStream in = socket.getInputStream();
FileOutputStream fos = new FileOutputStream("received_file.txt");
byte[] buffer = new byte[1024];
int len;
while ((len = in.read(buffer)) != -1) {
fos.write(buffer, 0, len);
}
fos.close();
in.close();
socket.close();
} catch (Exception e) {
e.printStackTrace();
}
}
}
```
客户端:
```java
import java.io.FileInputStream;
import java.io.OutputStream;
import java.net.Socket;
public class FileClient {
public static void main(String[] args) {
String host = "localhost";
int port = 12345;
try (Socket socket = new Socket(host, port);
FileInputStream fis = new FileInputStream("local_file.txt");
OutputStream out = socket.getOutputStream()) {
byte[] buffer = new byte[1024];
int len;
while ((len = fis.read(buffer)) != -1) {
out.write(buffer, 0, len);
}
out.flush();
} catch (Exception e) {
e.printStackTrace();
}
}
}
```
在这两个示例中,客户端读取名为`local_file.txt`的本地文件,并将其内容发送给服务器。服务器接收到数据后,将其写入名为`received_file.txt`的新文件中。
阅读全文