Java Socket传输数据的文件系统介绍
转自:http://developer.51cto.com/art/201003/189963.htm
Java Socket传输数据在进行的时候有很多的事情需要我们不断的进行有关代码的学习。只有不断的学习才能掌握相关的问题。下面我们就详细的看看如何才能更好的使用这些技术。
我们将这个对象串行化至文件系统,然后将之还原,Java Socket传输数据在这个过程其实类似于一个“压扁”和“充气”的过程,请注意,我们的Person类中包含一个嵌入对象,并且birthday变化,将之设置为transient限定符,这表示我们放弃了birthday的串行化;
package stream.demo;
import java.io.ByteArrayInputStream;
import java.io.ByteArrayOutputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;
import java.io.OutputStream;
import java.util.Date;
public class Persistence {
public static void main(String[] args) {
Persistence.savePerson();
Persistence.getPerson();
}
public static void getPerson() {
try {
InputStream in = new FileInputStream("c:\\person.dat");
ObjectInputStream dataInput = new ObjectInputStream(in);
Person p = (Person) dataInput.readObject();
System.out.println(p.getName());
System.out.println(p.getTall());
System.out.println(p.getBirthday());
System.out.println(p.getAddress().getCity());
System.out.println(p.getAddress().getStreet());
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
public static void savePerson() {
Person p = new Person();
p.setName("corey");
p.setTall(171);
p.setBirthday(new Date());
p.setAddress(new Address("yiyang", "ziyang"));
OutputStream out = new ByteArrayOutputStream();
try {
OutputStream fileOut = new FileOutputStream(new File(
"c:\\person.dat"));
ObjectOutputStream dataOut = new ObjectOutputStream(fileOut);
dataOut.writeObject(p);
dataOut.close();
fileOut.close();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
package stream.demo;
import java.io.ByteArrayInputStream;
import java.io.ByteArrayOutputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;
import java.io.OutputStream;
import java.util.Date;
public class Persistence {
public static void main(String[] args) {
Persistence.savePerson();
Persistence.getPerson();
}
public static void getPerson() {
try {
InputStream in = new FileInputStream("c:\\person.dat");
ObjectInputStream dataInput = new ObjectInputStream(in);
Person p = (Person) dataInput.readObject();
System.out.println(p.getName());
System.out.println(p.getTall());
System.out.println(p.getBirthday());
System.out.println(p.getAddress().getCity());
System.out.println(p.getAddress().getStreet());
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
public static void savePerson() {
Person p = new Person();
p.setName("corey");
p.setTall(171);
p.setBirthday(new Date());
p.setAddress(new Address("yiyang", "ziyang"));
OutputStream out = new ByteArrayOutputStream();
try {
OutputStream fileOut = new FileOutputStream(new File(
"c:\\person.dat"));
ObjectOutputStream dataOut = new ObjectOutputStream(fileOut);
dataOut.writeObject(p);
dataOut.close();
fileOut.close();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
Java Socket传输数据的文件系统介绍的更多相关文章
- java socket通信-传输文件图片--传输图片
ClientTcpSend.java client发送类 package com.yjf.test; import java.io.DataOutputStream; import java.io ...
- java socket之上传文件
一.功能介绍 该功能主要实现,将客户端的:F:/work/socketSample/filetemp/client/test_client.txt上传到服务端F:/work/socketSample/ ...
- Java Socket文件上传
客户端: import java.io.FileInputStream; import java.net.Socket; /** * Created by 290248126 on 14-5-11. ...
- java socket报文通信(三)java对象和xml格式文件的相互转换
前两节讲了socket服务端,客户端的建立以及报文的封装.今天就来讲一下java对象和xml格式文件的相互转换. 上一节中我们列举了一个报文格式,其实我们可以理解为其实就是一个字符串.但是我们不可能每 ...
- java socket 多线程网络传输多个文件
http://blog.csdn.net/njchenyi/article/details/9072845 java socket 多线程网络传输多个文件 2013-06-10 21:26 3596人 ...
- JAVA通信系列一:Java Socket技术总结
本文是学习java Socket整理的资料,供参考. 1 Socket通信原理 1.1 ISO七层模型 1.2 TCP/IP五层模型 应用层相当于OSI中的会话层,表示层, ...
- Java Socket编程
Java最初是作为网络编程语言出现的,其对网络提供了高度的支持,使得客户端和服务器的沟通变成了现实,而在网络编程中,使用最多的就是Socket.像大家熟悉的QQ.MSN都使用了Socket相关的技术. ...
- Java Socket编程----通信是这样炼成的
Java最初是作为网络编程语言出现的,其对网络提供了高度的支持,使得客户端和服务器的沟通变成了现实,而在网络编程中,使用最多的就是Socket.像大家熟悉的QQ.MSN都使用了Socket相关的技术. ...
- Java socket 说明 以及web 出现java.net.SocketException:(Connection reset或者Connectreset by peer:Socket write error)的解释
另外http://www.cnblogs.com/fengmk2/archive/2007/01/15/using-Socket.html可供参考 一Java socket 说明 所谓socket ...
随机推荐
- 1027 stl
#include<stdio.h> #include<queue> using namespace std; int main() { int i,n,m,j,k,a[100 ...
- android去除标题栏和状态栏(全屏)
转--http://www.eoeandroid.com/thread-66555-1-1.html 在开发中我们经常需要把我们的应用设置为全屏,这里我所知道的有俩中方法,一中是在代码中设置,另一种方 ...
- Python从文件中读取字符串,用正则表达式匹配中文字符的问题
2013-07-27 21:01:37| 在Windows下,用Python从.txt文件中读取字符串,并用正则表达式匹配中文,在网上看了方法,用的时候发现中文没有被匹配. ...
- 最长上升子序列(LIS)长度的O(nlogn)算法
最长上升子序列(LIS)的典型变形,熟悉的n^2的动归会超时.LIS问题可以优化为nlogn的算法.定义d[k]:长度为k的上升子序列的最末元素,若有多个长度为k的上升子序列,则记录最小的那个最末元素 ...
- POJ 2192 【DP】
题意: 给三个字符串,判断前两个在相对顺序不变的情况下是否可以组成第三个字符串. 思路: 先说屌丝: dp[i][j]代表1串的前i个和2串的前j个字符在3串的前i+j个字符中最多能够组合出几个字符. ...
- redis 实际应用中的缓存作用(转)
有人说互联网用户是用脚投票的,这句话其实也从侧面说明了,用户体验是多么的重要:这就要求在软件架构设计时,不但要注重可靠性.安全性.可扩展性以及可维护性等等的一些指标,更要注重用户的体验,用户体验分很多 ...
- mysql查询今天,昨天,近7天,近30天,本月,上一月数据的SQL
原文:http://www.open-open.com/code/view/1423207309170 select * from ad_proTrack_t where to_days(crt_ti ...
- Java编程50题
[程序1] 题目:古典问题:有一对兔子.从出生后第3个月起每一个月都生一对兔子,小兔子长到第三个月后每一个月又生一对兔子,假如兔子都不死.问每一个月的兔子总数为多少? //这是一个菲波拉契 ...
- RxJava系列之中的一个 初识Rxjava
1.简单介绍 基础知识 响应式代码的基本组成部分是Observables和Subscribers(事实上Observer才是最小的构建块,但实践中使用最多的是Subscriber.由于Subscrib ...
- 获取Windows用户所有的账户名
/// <summary> /// 设置用户密码 /// </summary> [DllImport("Netapi32.dll")] extern sta ...