我越是逃离,却越是靠近你。

我越是背过脸,却越是看见你。

我从你开始,

我在你结束。

需求:实现局域网下socket传输文件.

客户端步骤:

1、建立与服务器的连接

2、创建client输出流

3、创建输入流,绑定本地文件

4、读取文件后输出给服务器

服务器端步骤:

1、启动服务器

2、创建accept输入流

3、创建输出流绑定本地文件

4、读取客户端信息写入本地文件

1.字节流传输文件.

 public class Client {

     public static void main(String[] args) throws IOException {
Socket client = new Socket("192.168.0.112", );
OutputStream os = client.getOutputStream();
FileInputStream fis = new FileInputStream("/home/yanshaochen/public/2017-05-06 15-12-02屏幕截图.png");
byte[] bytes = new byte[];
int data;
while((data = fis.read(bytes))!= -){
os.write(bytes, , data);
}
fis.close();
client.close();
System.out.println("发送成功!");
}
}
 public class Server {

     public static void main(String[] args) throws Exception {
ServerSocket server = new ServerSocket();
System.out.println("listening..");
Socket accept = server.accept();
InputStream is = accept.getInputStream();
FileOutputStream fos = new FileOutputStream("d:\\download\\屏幕截图.png");
byte[] bytes = new byte[];
int data;
while((data = is.read(bytes))!=-){
fos.write(bytes, , data);
}
fos.close();
server.close();
}

2.字符流传输文件txt.

 public class Client {

     public static void main(String[] args) throws IOException {

         Socket client = new Socket("192.168.0.112", );
OutputStream os = client.getOutputStream();
Reader fr = new FileReader("/home/yanshaochen/public/zfsm.txt");
BufferedReader br = new BufferedReader(fr);
String buffer;
while((buffer = br.readLine())!= null){
buffer += "\r\n";
os.write(buffer.getBytes());
}
br.close();
client.close();
System.out.println("发送成功!");
}
}
 public class Server {

     public static void main(String[] args) throws Exception {

         ServerSocket server = new ServerSocket();
System.out.println("listening..");
Socket accept = server.accept();
InputStream is = accept.getInputStream();
FileWriter fw = new FileWriter("d:\\download\\zfsm.txt");
byte[] bytes = new byte[];
int data;
while((data = is.read(bytes)) != -){
fw.write(new String(bytes, , data));
}
fw.close();
server.close();
} }

Java学习笔记——Socket实现文件传输的更多相关文章

  1. Java学习笔记--Socket和ServerSocket

    参考资料: http://haohaoxuexi.iteye.com/blog/1979837http://zhidao.baidu.com/link?url=OeOSa0YbOzSbMVPa8sgP ...

  2. Java学习笔记--字符串和文件IO

    1.Java中的字符串类和字符的表示 2.区分String,StringBuilder和StringBuffer 3.从命令行中给main方法传递参数 4.文件操作 1 Java中的字符串和字符 1. ...

  3. Java学习笔记-基础语法Ⅸ-文件

    File File是文件和路径名的抽象表示,File封装的并不是一个真正存在的文件,是一个路径名,可以存在也可以不存在 常用方法: 创建文件:createNewFile() 创建目录:mkdir() ...

  4. JAVA学习笔记 -- 包资源文件jar包裹

    初学者GUI,使用Eclipse出口jar包裹,不能显示最小化的图标集(hello.png根文件下的项目文件夹文件).码如下面: import javax.swing.JFrame; import j ...

  5. java之jvm学习笔记三(Class文件检验器)

    java之jvm学习笔记三(Class文件检验器) 前面的学习我们知道了class文件被类装载器所装载,但是在装载class文件之前或之后,class文件实际上还需要被校验,这就是今天的学习主题,cl ...

  6. java学习笔记16--I/O流和文件

    本文地址:http://www.cnblogs.com/archimedes/p/java-study-note16.html,转载请注明源地址. IO(Input  Output)流 IO流用来处理 ...

  7. Java学习笔记4

    Java学习笔记4 1. JDK.JRE和JVM分别是什么,区别是什么? 答: ①.JDK 是整个Java的核心,包括了Java运行环境.Java工具和Java基础类库. ②.JRE(Java Run ...

  8. 20155234 2016-2017-2第十周《Java学习笔记》学习总结

    20155234第十周<Java学习笔记>学习总结 教材学习内容总结 网络编程 在两个或两个以上的设备(例如计算机)之间传输数据.程序员所作的事情就是把数据发送到指定的位置,或者接收到指定 ...

  9. 20145330第十周《Java学习笔记》

    20145330第十周<Java学习笔记> 网络编程 网络编程就是在两个或两个以上的设备(例如计算机)之间传输数据.程序员所作的事情就是把数据发送到指定的位置,或者接收到指定的数据,这个就 ...

随机推荐

  1. PHP正则表达式入门教程[转]

      思维导图 点击下图,可以看具体内容!     介绍          正则表达式,大家在开发中应该是经常用到,现在很多开发语言都有正则表达式的应用,比如javascript,java,.net,p ...

  2. WPF XAML中 Storyboard.TargetProperty设置TransformGroup指定的变换"RenderTransform.Children

    <Grid x:Name="xx" RenderTransformOrigin="0.5,0.5"> <Grid.RenderTransfor ...

  3. matlab 矢量化编程(三) —— 软阈值函数

    dj,k^=⎧⎩⎨⎪⎪dj,k−λ,dj,k≥λ0,otherwisedj,k+λ,dj,k≤−λ function y = soft(x, T) y = (x - abs(T) > 0) .* ...

  4. Entity framework 更改模型,新增表

    在Package Manager Console 中运行命令Enable-Migrations 再次运行可以更新 抄袭 在实体类中增加一个属性以后,执行 Update-Database 命令 ,可以更 ...

  5. 异步Servlet的理解与实践

    AsyncContext理解 Servlet 3.0(JSR315)定义了Servlet/Filter的异步特性规范. 怎么理解"异步Servlet/Filter"及其使用情景? ...

  6. WPF 跨界面调用程序

    this.Dispatcher.BeginInvoke(DispatcherPriority.Normal, (System.Threading.ThreadStart)delegate() { sE ...

  7. WAMP采用别名时ThinkPHP5项目设置方法

    打开public目录下的.htaccess文件,并在其中添加 RewriteBase /xxx<IfModule mod_rewrite.c> Options +FollowSymlink ...

  8. Win8Metro(C#)数字图像处理--2.13Roberts边缘检测

    原文:Win8Metro(C#)数字图像处理--2.13Roberts边缘检测  [函数名称] 图像Roberts边缘检测函数RobertEdgeProcess(WriteableBitmap s ...

  9. 使用xargs同步文本中单词出现个数

    #!/bin/bash # 分析一个文本文件中单词出现的频率. # 使用 'xargs' 将文本行分解为单词. # 检查命令行上输入的文件. ARGS= E_BADARGS= E_NOFILE= if ...

  10. Delphi 项目失败的总结

    随着项目的失败,这些天一直在总结失败的原因,到底是为什么? 一.技术层面        1.少用指针类型,多用类.            虽然指针类型能有效的节约内存和加快运行速度,但指针远没有类来得 ...