filerecieve.java
来自「JAVA 文件传输 发送文件 接受文件」· Java 代码 · 共 89 行
JAVA
89 行
package fileserver;
import java.net.*;
import java.io.*;
public class FileRecieve {
public static void main(String[] args) {
String fName = "d:/upload/";
ServerSocket server = null;
Socket soc = null;
InputStream is = null;
OutputStream os = null;
FileOutputStream fos = null;
BufferedReader br = null;
BufferedWriter bw = null;
String msg = "";
try {
server = new ServerSocket(9999);
System.out.println("server is listening...");
soc = server.accept();
System.out.println("server has accept.");
is = soc.getInputStream();
os = soc.getOutputStream();
bw = new BufferedWriter(
new OutputStreamWriter(os));
br = new BufferedReader(
new InputStreamReader(is));
msg = br.readLine();
int size=0;
if (msg.equals("SendFile")) {
System.out.println("server need file name.");
bw.write("FileName");
bw.newLine();
bw.flush();
System.out.println("server need file size.");
msg = br.readLine();
fName += msg;
bw.write("FileSize");
bw.newLine();
bw.flush();
msg = br.readLine();
size=Integer.parseInt(msg);
fos = new FileOutputStream(fName);
System.out.println("server is ready");
bw.write("Ready");
bw.newLine();
bw.flush();
int bt = -1;
byte[] bs = new byte[size];
is.read(bs,0,bs.length);
//while ((bt = is.read(bs, 0, bs.length)) > 0) {
fos.write(bs, 0, size);
//}
fos.close();
System.out.println("file has recieved");
bw.write("Finished");
bw.newLine();
bw.flush();
} else {
System.out.println("msg:" + msg);
}
} catch (Exception ex) {
System.out.println("ex in server:" + ex.getMessage());
} finally {
try {
bw.close();
} catch (Exception ex) {}
try {
br.close();
} catch (Exception ex) {}
try {
is.close();
} catch (Exception ex) {}
try {
os.close();
} catch (Exception ex) {}
try {
soc.close();
} catch (Exception ex) {}
try {
server.close();
} catch (Exception ex) {}
}
}
}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?