Java Socket傳輸數據的文件系統介紹

Java Socket傳輸數據的文件系統介紹

Java Socket傳輸數據在進行的時候有很多的事情需要我們不斷的進行有關代碼的學習。只有不斷的學習才能掌握相關的問題。下面我們就詳細的看看如何才能更好的使用這些技術。

我們將這個對象串行化至文件系統,然後將之還原,Java Socket傳輸數據在這個過程其實類似於一個“壓扁”和“充氣”的過程,請注意,我們的Person類中包含一個嵌入對象,並且birthday變化,將之設置爲transient限定符,這表示我們放棄了birthday的串行化;

Java代碼

  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. }  
  53. package stream.demo;  
  54. import java.io.ByteArrayInputStream;  
  55. import java.io.ByteArrayOutputStream;  
  56. import java.io.File;  
  57. import java.io.FileInputStream;  
  58. import java.io.FileOutputStream;  
  59. import java.io.IOException;  
  60. import java.io.InputStream;  
  61. import java.io.ObjectInputStream;  
  62. import java.io.ObjectOutputStream;  
  63. import java.io.OutputStream;  
  64. import java.util.Date;  
  65. public class Persistence {  
  66. public static void main(String[] args) {  
  67. Persistence.savePerson();  
  68. Persistence.getPerson();  
  69. }  
  70. public static void getPerson() {  
  71. try {  
  72. InputStream in = new FileInputStream("c:\\person.dat");  
  73. ObjectInputStream dataInput = new ObjectInputStream(in);  
  74. Person p = (Person) dataInput.readObject();  
  75. System.out.println(p.getName());  
  76. System.out.println(p.getTall());  
  77. System.out.println(p.getBirthday());  
  78. System.out.println(p.getAddress().getCity());  
  79. System.out.println(p.getAddress().getStreet());  
  80. } catch (Exception e) {  
  81. // TODO Auto-generated catch block  
  82. e.printStackTrace();  
  83. }  
  84. }  
  85. public static void savePerson() {  
  86. Person p = new Person();  
  87. p.setName("corey");  
  88. p.setTall(171);  
  89. p.setBirthday(new Date());  
  90. p.setAddress(new Address("yiyang", "ziyang"));  
  91. OutputStream out = new ByteArrayOutputStream();  
  92. try {  
  93. OutputStream fileOut = new FileOutputStream(new File(  
  94. "c:\\person.dat"));  
  95. ObjectOutputStream dataOut = new ObjectOutputStream(fileOut);  
  96. dataOut.writeObject(p);  
  97. dataOut.close();  
  98. fileOut.close();  
  99. } catch (IOException e) {  
  100. // TODO Auto-generated catch block  
  101. e.printStackTrace();  
  102. }  
  103. }  

以上就是對Java Socket傳輸數據的詳細介紹,希望大家有所收穫。


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章