Java Socket传输数据的文件系统介绍
Java Socket传输数据在进行的时候有很多的事情需要我们不断的进行有关代码的学习。只有不断的学习才能掌握相关的问题。下面我们就详细的看看如何才能更好的使用这些技术。
我们将这个对象串行化至文件系统,然后将之还原,JavaSocket传输数据在这个过程其实类似于一个“压扁”和“充气”的过程,请注意,我们的Person类中包含一个嵌入对象,并且birthday变化,将之设置为transient限定符,这表示我们放弃了birthday的串行化;
Java代码
- packagestream.demo;
- importjava.io.ByteArrayInputStream;
- importjava.io.ByteArrayOutputStream;
- importjava.io.File;
- importjava.io.FileInputStream;
- importjava.io.FileOutputStream;
- importjava.io.IOException;
- importjava.io.InputStream;
- importjava.io.ObjectInputStream;
- importjava.io.ObjectOutputStream;
- importjava.io.OutputStream;
- importjava.util.Date;
- publicclassPersistence{
- publicstaticvoidmain(String[]args){
- Persistence.savePerson();
- Persistence.getPerson();
- }
- publicstaticvoidgetPerson(){
- try{
- InputStreamin=newFileInputStream("c:\\person.dat");
- ObjectInputStreamdataInput=newObjectInputStream(in);
- Personp=(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(Exceptione){
- //TODOAuto-generatedcatchblock
- e.printStackTrace();
- }
- }
- publicstaticvoidsavePerson(){
- Personp=newPerson();
- p.setName("corey");
- p.setTall(171);
- p.setBirthday(newDate());
- p.setAddress(newAddress("yiyang","ziyang"));
- OutputStreamout=newByteArrayOutputStream();
- try{
- OutputStreamfileOut=newFileOutputStream(newFile(
- "c:\\person.dat"));
- ObjectOutputStreamdataOut=newObjectOutputStream(fileOut);
- dataOut.writeObject(p);
- dataOut.close();
- fileOut.close();
- }catch(IOExceptione){
- //TODOAuto-generatedcatchblock
- e.printStackTrace();
- }
- }
- }
- packagestream.demo;
- importjava.io.ByteArrayInputStream;
- importjava.io.ByteArrayOutputStream;
- importjava.io.File;
- importjava.io.FileInputStream;
- importjava.io.FileOutputStream;
- importjava.io.IOException;
- importjava.io.InputStream;
- importjava.io.ObjectInputStream;
- importjava.io.ObjectOutputStream;
- importjava.io.OutputStream;
- importjava.util.Date;
- publicclassPersistence{
- publicstaticvoidmain(String[]args){
- Persistence.savePerson();
- Persistence.getPerson();
- }
- publicstaticvoidgetPerson(){
- try{
- InputStreamin=newFileInputStream("c:\\person.dat");
- ObjectInputStreamdataInput=newObjectInputStream(in);
- Personp=(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(Exceptione){
- //TODOAuto-generatedcatchblock
- e.printStackTrace();
- }
- }
- publicstaticvoidsavePerson(){
- Personp=newPerson();
- p.setName("corey");
- p.setTall(171);
- p.setBirthday(newDate());
- p.setAddress(newAddress("yiyang","ziyang"));
- OutputStreamout=newByteArrayOutputStream();
- try{
- OutputStreamfileOut=newFileOutputStream(newFile(
- "c:\\person.dat"));
- ObjectOutputStreamdataOut=newObjectOutputStream(fileOut);
- dataOut.writeObject(p);
- dataOut.close();
- fileOut.close();
- }catch(IOExceptione){
- //TODOAuto-generatedcatchblock
- e.printStackTrace();
- }
- }
- }
以上就是对Java Socket传输数据的详细介绍,希望大家有所收获。