Java的IO

news/2024/12/4 3:43:44/

1.  Java中有种类

按照流(inputStreamoutputStream 

按照(可地方 FileReader理流(是个已存调用BufferedReader构造要带一数。流的链接。) 
照处理数据的单位字节流和字符流。字节流继承 InputStream  OutputStream符流继承InputStreamReader OutputStreamWriter 

2.  字节流何转为字 

字节InputStreamReaderInputStream 

字节OutputStreamWriterOutputStream 

3.  如何将一java象序列到文件里 

java类必Serializable抽象记作用。 

1. //对象输出流 

2.   ObjectOutputStream objectOutputStream =

3. new ObjectOutputStream(new FileOutputStream(new File("D://obj"))); 

4.   objectOutputStream.writeObject(new User("zhangsan", 100)); 

5.   objectOutputStream.close(); 

6.   //对象输入流 

7.   ObjectInputStream objectInputStream =

8. new ObjectInputStream(new FileInputStream(new File("D://obj"))); 

9.   User user = (User)objectInputStream.readObject(); 

10.   System.out.println(user); 

11.   objectInputStream.close(); 

4.  字节流字符流的区别2017-11-23-wzz 

字节一个 使到一对应的字节数是UTF-83先去查指的字 可以处理型数据,MP3AVI 能处处理先考使流,。字byte类型byte准,OutputStreamInputStream 
字符2Unicode别操组或字符理单1字节所以Java机将2字节Unicode字符,所以比较图片字节流好用字符个字javaReaderWriter两个 

5.  如何实对象克隆

有两 

1).   Cloneable 接口并重  Object   clone()法; 
2).   Serializable 口,反序实现码如下。 

12. import java.io.ByteArrayInputStream;

13. import java.io.ByteArrayOutputStream;

14. import java.io.ObjectInputStream;

15. import java.io.ObjectOutputStream;

16. import java.io.Serializable;

17. public class MyUtil {

18. private MyUtil() {

19. throw new AssertionError();

20. }

21. @SuppressWarnings("unchecked")

22. public static <T extends Serializable> T clone(T obj) throws Exception {

23. ByteArrayOutputStream bout = new ByteArrayOutputStream();

24. ObjectOutputStream oos = new ObjectOutputStream(bout);

25. oos.writeObject(obj);

26. ByteArrayInputStream bin = new ByteArrayInputStream(bout.toByteArray());

27. ObjectInputStream ois = new ObjectInputStream(bin);

28. return (T) ois.readObject();

29. // 说明:调用 ByteArrayInputStream  ByteArrayOutputStream 对象的 close 方法没有任何意 

30. // 这两个基于内存的流只垃圾回收器清理对象就能够释放资源,这一点不同于对外部资源(如文件流)的释 

31. }

32. }

测试 

1. import java.io.Serializable; 

2. /** 

3. *  

4.  */ 

5. class Person implements Serializable { 

6. private static final long serialVersionUID = -9102017020286042305L;

7. private String name; //  

8. private int age; //  

9. private Car car; //  

10. public Person(String name, int age, Car car) {

11. this.name = name;

12. this.age = age;

13. this.car = car;

14. }

15. public String getName() {

16. return name;

17. }

18. public void setName(String name) {

19. this.name = name;

20. }

21. public int getAge() {

22. return age;

23. }

24. public void setAge(int age) {

25. this.age = age;

26. }

27. public Car getCar() {

28. return car;

29. }

30. public void setCar(Car car) {

31. this.car = car;

32. }

33. @Override

34. public String toString() {

35. return "Person [name=" + name + ", age=" + age + ", car=" + car + "]";

36. }

37. }

1. /** 

2. * 小汽车 

3. */ 

4. class Car implements Serializable { 

5. private static final long serialVersionUID = -5713945027627603702L;

6. private String brand; //  

7. private int maxSpeed; // 最高时 

8. public Car(String brand, int maxSpeed) { 

9. this.brand = brand; 

10. this.maxSpeed = maxSpeed;

11. }

12. public String getBrand() {

13. return brand;

14. }

15. public void setBrand(String brand) {

16. this.brand = brand;

17. }

18. public int getMaxSpeed() {

19. return maxSpeed;

20. }

21. public void setMaxSpeed(int maxSpeed) {

22. this.maxSpeed = maxSpeed;

23. }

24. @Override

25. public String toString() {

26. return "Car [brand=" + brand + ", maxSpeed=" + maxSpeed + "]";

27. }

28. }

1. class CloneTest { 

2. public static void main(String[] args) { 

3. try { 

4. Person p1 = new Person("Hao LUO", 33, new Car("Benz", 300)); 

5. Person p2 = MyUtil.clone(p1); // 深度克 

6. p2.getCar().setBrand("BYD"); 

7. // 修改克隆的 Person  p2 关联的汽车对象的品牌 

8. // 原来的 Person 对象 p1 关联的汽车不会受到任何影响 

9. // 因为在克隆 Person 时其关联的汽车对象也被克隆了 

10. System.out.println(p1);

11. } catch (Exception e) {

12. e.printStackTrace();

13. }

14. }

15. }

注意:基于序列化和反序列化实现的克隆不仅仅是深度克隆,更重要的是通过泛型限定,可以检查出要克隆的对

象是否支持序列化,这项检查成的是在异常种是使Object   clone 

方法编译好过 

6.  什么java序列,如何实java列化?

序列化就是一种用来处理对象流的机制,所谓对象流也就是将对象的内容进行流化。可以对流化后的对象进

写操对象列化流进的问题。 

将需 Serializable 实现

implements Serializable只是被序使个输(FileOutputStream)构造

ObjectOutputStream(对象流)使ObjectOutputStreamwriteObject(Object obj)

可以obj对象写出()要恢复的 


http://www.ppmy.cn/news/100061.html

相关文章

ERP系统介绍

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录 前言一、ERP系统概述&#xff1f;1.什么是ERP2.主流ERP系统介绍3.用友ERP4.部署用友ERP畅捷通T6软件系统环境要求4.用友ERP畅捷通T6软件用户管理4.用友ERP畅捷通T6软…

POI入门级操作excel文档的代码示例

本文介绍了使用Apache POI库操作文档的所有方法和代码示例。读者可以学习如何创建Excel文档、Sheet、行、单元格,以及如何设置单元格的值和样式,最后将Excel文档保存到磁盘上。使用POI操作Excel文件非常方便,本文详细介绍了这个过程中需要使用的类和方法,供读者参考使用。 …

CMakeLists

Top level CMakeLists.txt for CGAL-branchbuild message( “ CMake setup ” ) project(CGAL CXX C) Minimal version of CMake: if(WIN32) cmake_minimum_required(VERSION 2.8.6) else() cmake_minimum_required(VERSION 2.6.2) endif() option for branch build optio…

移动端开发之基础知识

移动端开发之流式布局 移动端基础浏览器现状手机屏幕现状移动端调试方法 视口布局视口视觉视口理想视口总结&#xff1a; meta视口标签标准的viewport设置 三倍图物理像素&物理像素比多倍图背景缩放 background-size背景图三倍图 多倍图切图 cutterman 移动端开发选择移动端…

Zabbix Server Api批量添加Zabbix Agent

脚本或使用自动化工具来批量添加Zabbix Agent&#xff0c;从而减少手动操作和提高效率 使用API添加主机可以减少人为错误的发生。通过自动化和脚本&#xff0c;可以确保正确的配置被应用到每个主机上&#xff0c;避免了手动操作可能导致的配置错误。 使用前提条件 1、zabbix…

SMCSQL:一种用于安全查询的联合数据库

摘要 在数据量不断膨胀的今天,但是因为隐私问题,在科学研究等方面的数据共享工作仍然进展缓慢。 本文提出了一种名为 PDN(Private Data Network)的用于多个互不信任的参与方之间的联邦数据库形式。在 PDN 中,用户将查询请求发送给一个名为诚实代理(Honest Broker)的中…

IIC协议

1.认识IIC 1、IIC协议概述&#xff1a; IIC&#xff08;Inter-Integrated Circuit&#xff0c;集成电路总线&#xff09;是一种串行通信协议&#xff0c;也被称为I2C协议。它是由荷兰的PHILIPS公司&#xff08;现在philips公司将其半导体部门拆分出来并更名为NXP半导体公司&a…

2023年江苏省中职网络安全Web渗透测试解析(超详细)

一、竞赛时间 180分钟 共计3小时 二、竞赛阶段 1.访问地址http://靶机IP/web1,分析页面内容,获取flag值,Flag格式为flag{xxx}; 2.访问地址http://靶机IP/web2,访问登录页面。用户user01的密码为1-1000以内的数,获取用户user01的密码,将密码作为Flag进行提交,Flag格式为…