public static void main(String[] args) throws IOException {
Socket socket = new Socket("127.0.0.1", 10000);
//本地流,用来读取本地文件
BufferedInputStream bis = new BufferedInputStream(new FileInputStream("E:\\Test\\code\\1.txt"));
//写到服务器,---网络流
OutputStream os = socket.getOutputStream();
BufferedOutputStream bos=new BufferedOutputStream(os);//用bos包装一下,提高效率
int b;
while ((b=bis.read())!=-1){
bos.write(b);//通过网络写到服务器
}
socket.shutdownOutput();//给服务器一个结束标记,表面文件传输完成
//接受返回数据
BufferedReader br=new BufferedReader(new InputStreamReader(socket.getInputStream()));
String line;
while ((line=br.readLine())!=null){
System.out.println(line);
}
socket.close();
bis.close();
}
}
public static void main(String[] args) throws IOException {
ServerSocket ss = new ServerSocket(10000);
Socket accept = ss.accept();
BufferedInputStream bis = new BufferedInputStream(accept.getInputStream());//从网络获取
BufferedOutputStream bos = new BufferedOutputStream(new FileOutputStream("E:\\Test\\code\\2.txt"));//写到本地流
int b;
while ((b = bis.read()) != -1) {
bos.write(b);
}
BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(accept.getOutputStream()));
bw.write("上传成功");
bw.newLine();
bw.flush();
bos.close();
accept.close();
ss.close();
}
}
外部打开后能看见下载下来的内容
求解,感谢
应该是跟你的客户端发送数据的方式有关系,稍微改造一下就能通了
public static void main(String[] args) throws IOException {
Socket socket = new Socket("127.0.0.1", 10011);
//本地流,用来读取本地文件
BufferedReader bis = new BufferedReader(new FileReader("E:\\tmp\\1.txt"));
//写到服务器,---网络流
OutputStream os = socket.getOutputStream();
//BufferedOutputStream bos=new BufferedOutputStream(os);//用bos包装一下,提高效率
BufferedWriter bufferedWriter = new BufferedWriter(new OutputStreamWriter(os));
/*int b;
while ((b=bis.read())!=-1){
bos.write(b);//通过网络写到服务器
}*/
String str = bis.readLine();
bufferedWriter.write(str);
bufferedWriter.flush();
socket.shutdownOutput();//给服务器一个结束标记,表面文件传输完成
//接受返回数据
BufferedReader br=new BufferedReader(new InputStreamReader(socket.getInputStream()));
String line;
while ((line=br.readLine())!=null){
System.out.println(line);
}
socket.close();
bis.close();
}