转自:http://developer.51cto.com/art/201003/189963.htm

Java Socket传输数据在进行的时候有很多的事情需要我们不断的进行有关代码的学习。只有不断的学习才能掌握相关的问题。下面我们就详细的看看如何才能更好的使用这些技术。

我们将这个对象串行化至文件系统,然后将之还原,Java Socket传输数据在这个过程其实类似于一个“压扁”和“充气”的过程,请注意,我们的Person类中包含一个嵌入对象,并且birthday变化,将之设置为transient限定符,这表示我们放弃了birthday的串行化;

 1 package stream.demo;
 2 import java.io.ByteArrayInputStream;
 3 import java.io.ByteArrayOutputStream;
 4 import java.io.File;
 5 import java.io.FileInputStream;
 6 import java.io.FileOutputStream;
 7 import java.io.IOException;
 8 import java.io.InputStream;
 9 import java.io.ObjectInputStream;
10 import java.io.ObjectOutputStream;
11 import java.io.OutputStream;
12 import java.util.Date;
13 public class Persistence {
14 public static void main(String[] args) {
15 Persistence.savePerson();
16 Persistence.getPerson();
17 }
18 public static void getPerson() {
19 try {
20 InputStream in = new FileInputStream("c:\\person.dat");
21 ObjectInputStream dataInput = new ObjectInputStream(in);
22 Person p = (Person) dataInput.readObject();
23 System.out.println(p.getName());
24 System.out.println(p.getTall());
25 System.out.println(p.getBirthday());
26 System.out.println(p.getAddress().getCity());
27 System.out.println(p.getAddress().getStreet());
28 } catch (Exception e) {
29 // TODO Auto-generated catch block
30 e.printStackTrace();
31 }
32 }
33 public static void savePerson() {
34 Person p = new Person();
35 p.setName("corey");
36 p.setTall(171);
37 p.setBirthday(new Date());
38 p.setAddress(new Address("yiyang", "ziyang"));
39 OutputStream out = new ByteArrayOutputStream();
40 try {
41 OutputStream fileOut = new FileOutputStream(new File(
42 "c:\\person.dat"));
43 ObjectOutputStream dataOut = new ObjectOutputStream(fileOut);
44 dataOut.writeObject(p);
45 dataOut.close();
46 fileOut.close();
47 } catch (IOException e) {
48 // TODO Auto-generated catch block
49 e.printStackTrace();
50 }
51 }
52 }  

 1 package stream.demo;
 2 import java.io.ByteArrayInputStream;
 3 import java.io.ByteArrayOutputStream;
 4 import java.io.File;
 5 import java.io.FileInputStream;
 6 import java.io.FileOutputStream;
 7 import java.io.IOException;
 8 import java.io.InputStream;
 9 import java.io.ObjectInputStream;
10 import java.io.ObjectOutputStream;
11 import java.io.OutputStream;
12 import java.util.Date;
13 public class Persistence {
14 public static void main(String[] args) {
15 Persistence.savePerson();
16 Persistence.getPerson();
17 }
18 public static void getPerson() {
19 try {
20 InputStream in = new FileInputStream("c:\\person.dat");
21 ObjectInputStream dataInput = new ObjectInputStream(in);
22 Person p = (Person) dataInput.readObject();
23 System.out.println(p.getName());
24 System.out.println(p.getTall());
25 System.out.println(p.getBirthday());
26 System.out.println(p.getAddress().getCity());
27 System.out.println(p.getAddress().getStreet());
28 } catch (Exception e) {
29 // TODO Auto-generated catch block
30 e.printStackTrace();
31 }
32 }
33 public static void savePerson() {
34 Person p = new Person();
35 p.setName("corey");
36 p.setTall(171);
37 p.setBirthday(new Date());
38 p.setAddress(new Address("yiyang", "ziyang"));
39 OutputStream out = new ByteArrayOutputStream();
40 try {
41 OutputStream fileOut = new FileOutputStream(new File(
42 "c:\\person.dat"));
43 ObjectOutputStream dataOut = new ObjectOutputStream(fileOut);
44 dataOut.writeObject(p);
45 dataOut.close();
46 fileOut.close();
47 } catch (IOException e) {
48 // TODO Auto-generated catch block
49 e.printStackTrace();
50 }
51 }
52 } 

转载于:https://www.cnblogs.com/sharpest/p/10054597.html

Java Socket传输数据的文件系统介绍相关推荐

  1. java socket 传输压缩文件_java基于socket传输zip文件功能示例

    本文实例讲述了java基于socket传输zip文件的方法.分享给大家供大家参考,具体如下: 服务器端程序: import java.io.*; import java.net.*; import j ...

  2. Java Socket编程 - 基于TCP方式的二进制文件传输【转】http://blog.csdn.net/jia20003/article/details/8248221...

    此人博客挺好的,推荐一个! 一个基于Java Socket协议之上文件传输的完整示例,基于TCP通信完成. 除了基于TCP的二进制文件传输,还演示了JAVA Swing的一些编程技巧,Demo程序 实 ...

  3. Java Socket编程 - 基于TCP方式的二进制文件传输

    一个基于Java Socket协议之上文件传输的完整示例,基于TCP通信完成. 除了基于TCP的二进制文件传输,还演示了JAVA Swing的一些编程技巧,Demo程序 实现主要功能有以下几点: 1. ...

  4. java socket安全策略文件

    获取策略文件的Java服务器端代码import java.io.BufferedReader; import java.io.BufferedWriter; import java.io.IOExce ...

  5. Android之在Java socket作为服务器里面返回数据头部怎么写入浏览器需要下载文件的文件名

    1 问题 Android app里面写了一个Java socket的简单服务器,在浏览器里面输入相应的IP和端口访问服务器下载文件,Java socket怎么写返回数据的头部信息,浏览器才知道需要下载 ...

  6. 【Java】TCP Socket编程案例——文件传输聊天工具

    TCP(传输控制协议)是面向连接的可靠数据传输协议.TCP连接一旦建立起来,一直占用,直到关闭连接.另外,TCP为了保证数据的正确性,会重发一切没有收到的数据,还会对数据内容进行验证,并保证数据传输的 ...

  7. Java Socket文件上传

    客户端: import java.io.FileInputStream; import java.net.Socket;/*** Created by 290248126 on 14-5-11.*/ ...

  8. java socket 点对点_javaSocket点对点实现文件传输

    伟哥是学C++的,昨天做java老师布置的大作业,让他们做一个文件传输的程序,多线程实现,伟哥很是无语啊,然而他并没有学过太多java,虽然伟哥在我心中是个大神(计算机大神啊,面过了tecent,啧啧 ...

  9. Java Socket实现简易多人聊天室传输聊天内容或文件

    Java Socket实现简易多人聊天室传输聊天内容或文件 Java小练手项目:用Java Socket实现多人聊天室,聊天室功能包括传输聊天内容或者文件.相比于其它的聊天室,增加了传输文件的功能供参 ...

最新文章

  1. oracle读书笔记之Oracle 11g R2 DBA操作指南(前三章)
  2. (流式、lambda、触发器)实时处理大比拼 - 物联网(IoT)\金融,时序处理最佳实践
  3. caffe 报错 Check failed: error == cudaSuccess (77 vs. 0) an illegal memory access was encounteredcaffe
  4. Interview:算法岗位面试—11.07早上上海某机器人公司(上市)面试之项目考察、比赛考察、图像算法的考察等
  5. DL之Mask R-CNN:2018.6.26世界杯阿根廷队VS尼日利亚比赛2:1实现Mask R-CNN目标检测
  6. android人脸识别的背景图_Android 图片人脸识别剪切
  7. OpenGL进阶演示样例1——动态画线(虚线、实线、颜色、速度等)
  8. Linux 系统使用之 VMware Tools安装
  9. 【CCCC】L3-023 计算图 (30分),dfs搜索+偏导数计算
  10. 站在5G潮头 爱立信如何重描金字招牌 | MWC 2019
  11. Android 面(被)试(锤)现场还原~
  12. Java后台校验修改密码强度工具类
  13. 从宜宾天原看中国氯碱百年史:初心未改 工业赋能迈向强国序列
  14. Intellij IDEA--将Java项目打包为jar包--方法/实例
  15. 关于Go语言的底层,你想知道的都在这里!
  16. Ubuntu下查看Nvidia显卡驱动
  17. 基于Tcl脚本生成Vivado工程及编译
  18. tensorflow代码全解析 -3- seq2seq 自动生成文本
  19. 【Android UI】贝塞尔曲线 ① ( 一阶贝塞尔曲线 | 二阶贝塞尔曲线 )
  20. 怎样用c语言实现CPU超频,教你用最简单的方法给你的显卡超频

热门文章

  1. integer比较_Java整数缓存Integer.valueOf(127)==Integer.valueOf(127)为True
  2. java接口深入理解,深入理解Java接口
  3. python打包的exe如何免杀_通过Python实现Payload分离免杀过程详解
  4. kernel: make tags 时的告警修改
  5. vim 对文件进行加密
  6. java 非法字符u3000_IDEA编码格式问题:Error:(3, 13) java: 非法字符: '\u0000'
  7. FPGA之道(41)HDL的三种描述方式
  8. Ant Design 3.16.2 发布,企业级 UI 设计语言
  9. RabbitMQ核心概念
  10. 3.5. Error Prompt