当前位置: 首页 > news >正文

企业网站怎么做外链推广手机卡返佣平台

企业网站怎么做外链,推广手机卡返佣平台,长沙百度网络推广,wordpress初音主题目录 前言 一、缓冲流 四种方式拷贝文件的用时对比 二、对象流 1. 使用对象流写入对象到本地文件 2. 使用对象流读取对象数据 总结 前言 【File文件管理及IO流#xff08;基本流#xff09;】http://t.csdnimg.cn/uG5Ff 该篇博客中#xff0c;介绍了学习高级流需要的…目录 前言 一、缓冲流 四种方式拷贝文件的用时对比 二、对象流 1. 使用对象流写入对象到本地文件 2. 使用对象流读取对象数据 总结 前言 【File文件管理及IO流基本流】http://t.csdnimg.cn/uG5Ff 该篇博客中介绍了学习高级流需要的前置知识 文件管理 基本的输入输出流了解基本的输入输出流的概念和使用方法包括字节流和字符流以及如何读写文件或处理其他数据源。 Java 中的高级流指的是建立在基本字节流或字符流之上的流它们提供了更高级别的功能以简化 I/O 操作。除缓冲流和对象流外常见的高级流还有数据流、打印流、压缩流、转换流等。 一、缓冲流 缓冲流Buffered Streams在 Java 中是一种用于提高输入输出效率的流。它们通过在内存中创建缓冲区来减少对底层资源如文件、网络连接的频繁访问从而提高读写数据的性能。 常见的缓冲流包括 BufferedInputStream字节缓冲输入流BufferedOutputStream字节缓冲输出流BufferedReader字符缓冲输入流BufferedWriter字符缓冲输出流 它们构造方法的参数都是对应的基本流例如 public BufferedInputStream(InputStream is) 缓冲流的原理底层自带了长度为8192的缓冲区提高性能。 缓冲中的两个独有方法非常实用 1.readLine() 读取一行 用于从输入流中读取一行文本数据并返回一个字符串表示该行数据。这个方法通常用于读取文本文件中的内容逐行读取文本信息。2.newLine() 通用换行 作用是写入一个平台无关的行分隔符即换行符。 使用 newLine()方法可以根据当前平台自动生成正确的换行符而不需要手动编写特定的换行符。 通常情况下不同操作系统的行分隔符如下1Windows 系统使用回车符和换行符表示行尾即\r\n2Unix 和类 Unix 系统如 Linux使用换行符表示行尾即 \n。3旧版 Mac OS 使用回车符表示行尾即 \r。  为方便读取文本文件这里用字符缓冲流进行示例(需要创建好对应的文件路径也要正确) import java.io.*;public class CharacterBS { //字符缓冲流public static void main(String[] args) throws IOException {//读取数据(输入流)BufferedReader br new BufferedReader(new FileReader(File\\buffer.txt));//两个独有方法readLine() 读取一行// newLine() 通用换行String s;while ((s br.readLine()) ! null) {System.out.println(s);}br.close();//写数据(输出流)BufferedWriter bw new BufferedWriter(new FileWriter(File\\buffer2.txt));bw.write(缓冲流Buffered Streams);bw.newLine();bw.write(BufferedReader提供缓冲读取文本数据的功能。);bw.newLine();bw.write(BufferedWriter提供缓冲写入文本数据的功能。);bw.newLine();bw.close();} } 读取的数据 写入的数据  四种方式拷贝文件的用时对比 拷贝文件四种方式拷贝文件(边读边写)并统计各自用时(这里的文件越大越好太小体现不出差别)1.字节流的基本流一次读写一个字节2.字节流的基本流一次读写一个字节数组[8192]3.字节缓冲流一次读写一个字节4.字节缓冲流一次读写一个字节数组[8192]import java.io.*;public class Test1 {public static void main(String[] args) throws IOException {/*拷贝文件四种方式拷贝文件并统计各自用时字节流的基本流一次读写一个字节字节流的基本流一次读写一个字节数组字节缓冲流一次读写一个字节字节缓冲流一次读写一个字节数组*/long time1 method1();long time2 method2();long time3 method3();long time4 method4();System.out.println(time1);System.out.println(time2);System.out.println(time3);System.out.println(time4);}private static long method1() throws IOException {long start System.currentTimeMillis();FileInputStream fis new FileInputStream(File\\read.txt);FileOutputStream fos new FileOutputStream(File\\write.txt);int b;while ((b fis.read()) ! -1) {fos.write(b);}fos.close();fis.close();long end System.currentTimeMillis();return end - start;}private static long method2() throws IOException {long start System.currentTimeMillis();FileInputStream fis new FileInputStream(File\\read.txt);FileOutputStream fos new FileOutputStream(File\\write.txt);byte[] bytes new byte[8192];int len;while ((len fis.read(bytes)) ! -1) {fos.write(bytes, 0, len);}fos.close();fis.close();long end System.currentTimeMillis();return end - start;}private static long method3() throws IOException {long start System.currentTimeMillis();BufferedInputStream bis new BufferedInputStream(new FileInputStream(File\\read.txt));BufferedOutputStream bos new BufferedOutputStream(new FileOutputStream(File\\write.txt));int b;while ((b bis.read()) ! -1) {bos.write(b);}bos.close();bis.close();long end System.currentTimeMillis();return end - start;}private static long method4() throws IOException {long start System.currentTimeMillis();BufferedInputStream bis new BufferedInputStream(new FileInputStream(File\\read.txt));BufferedOutputStream bos new BufferedOutputStream(new FileOutputStream(File\\write.txt));byte[] bytes new byte[8192];int len;while ((len bis.read(bytes)) ! -1) {bos.write(bytes, 0, len);}bos.close();bis.close();long end System.currentTimeMillis();return end - start;} } 对比结果文件太小了所以读写字节数组的差距没有体现  字节流的基本流一次读写一个字节字节流的基本流一次读写一个字节数组[8192]字节缓冲流一次读写一个字节字节缓冲流一次读写一个字节数组[8192] 二、对象流 对象流Object Streams也叫序列化/反序列化流是 Java 中用于读写对象的流。对象流可以将对象以二进制形式序列化Serialization后写入输出流也可以从输入流中读取二进制数据并反序列化Deserialization为对象。 Java 提供了两个主要的对象流类 ObjectOutputStream用于将对象序列化后写入输出流。ObjectInputStream用于从输入流中读取二进制数据并反序列化为对象。 同缓冲流它们构造方法的参数也是基本流 ObjectOutputStream oos new ObjectOutputStream(new FileOutputStream(objects.bin)); ObjectInputStream ois new ObjectInputStream(new FileInputStream(objects.bin)); 需要注意的是要使对象能够被序列化该对象所属的类必须实现 Serializable 接口。序列化过程会将对象转换成字节序列因此对象的字段和类的结构都需要支持序列化。 对象流的使用场景包括但不限于保存和加载对象数据因为写入到文件后是一对看不懂的数据、对象的网络传输等。 作用通过对象流我们可以方便地将对象以二进制形式写入到输出流中并从输入流中读取并还原为对象实现了对象的持久化和简化了数据传输。写入到文件后 细节要写出的对象必须实现Serializable接口(标记性接口) serialVersionUID(版本号)否则会抛出NotSerializableException异常 写入对象的方法writeObject(对象); 读取对象的方法readObject(); 返回值Object 1. 使用对象流写入对象到本地文件 写入对象前的准备工作自定义类 import java.io.Serial; import java.io.Serializable;public class Student implements Serializable {Serialprivate static final long serialVersionUID -3931917465211028662L;private String name;private int age;//transient: 瞬态关键字//作用不会把当前属性序列化到本地文件当中private transient String address;public Student() {}public Student(String name, int age, String address) {this.name name;this.age age;this.address address;}/*** 获取** return name*/public String getName() {return name;}/*** 设置** param name*/public void setName(String name) {this.name name;}/*** 获取** return age*/public int getAge() {return age;}/*** 设置** param age*/public void setAge(int age) {this.age age;}/*** 获取** return address*/public String getAddress() {return address;}/*** 设置** param address*/public void setAddress(String address) {this.address address;}public String toString() {return Student{name name , age age , address address };} } import java.io.Serial; import java.io.Serializable;public class Teacher implements Serializable {Serialprivate static final long serialVersionUID 2983184546427358899L;private String name;private int age;private String address;public Teacher() {}public Teacher(String name, int age, String address) {this.name name;this.age age;this.address address;}/*** 获取** return name*/public String getName() {return name;}/*** 设置** param name*/public void setName(String name) {this.name name;}/*** 获取** return age*/public int getAge() {return age;}/*** 设置** param age*/public void setAge(int age) {this.age age;}/*** 获取** return address*/public String getAddress() {return address;}/*** 设置** param address*/public void setAddress(String address) {this.address address;}public String toString() {return Teacher{name name , age age , address address };} } 写入一个对象  import java.io.FileOutputStream; import java.io.IOException; import java.io.ObjectOutputStream;public class Test1 { //序列化流/对象操作输出流public static void main(String[] args) throws IOException {/*需求利用序列化流/对象操作输出流把一个对象写到本地文件中细节要写出的对象必须实现Serializable接口(标记性接口) serialVersionUID(版本号)否则回抛出NotSerializableException异常transient: 瞬态关键字作用不会把当前属性序列化到本地文件当中*///1.创建对象Student stu new Student(张三, 23, 厦门);//2.创建续流化流/对象操作输出流对象ObjectOutputStream oos new ObjectOutputStream(new FileOutputStream(File\\object.txt));//3.写出对象oos.writeObject(stu);//4.关流oos.close();} } 写入后的数据  写入多个对象 import java.io.FileOutputStream; import java.io.IOException; import java.io.ObjectOutputStream; import java.util.ArrayList;public class Test_1 {public static void main(String[] args) throws IOException {/*用对象流读写多个对象需求将多个自定义对象序列化到文件中但是由于对象的个数不确定反序列流该如何读取*///序列化多个对象//1.创建对象Teacher t1 new Teacher(张三, 23, 北京);Teacher t2 new Teacher(李四, 24, 上海);Teacher t3 new Teacher(王五, 25, 深圳);//2.将对象添加到集合中ArrayListTeacher list new ArrayList();list.add(t1);list.add(t2);list.add(t3);//3.序列化集合ObjectOutputStream oos new ObjectOutputStream(new FileOutputStream(File\\teacher.txt));oos.writeObject(list);//4.关流oos.close();} } 2. 使用对象流读取对象数据 读取单个对象 import java.io.FileInputStream; import java.io.IOException; import java.io.ObjectInputStream;public class Test2 { //反序列化流/对象操作输入流public static void main(String[] args) throws IOException, ClassNotFoundException {//1.创建反序列化流/对象操作输入流ObjectInputStream ois new ObjectInputStream(new FileInputStream(File\\object.txt));//2.读取数据Object o ois.readObject();//3.打印对象System.out.println(o);//4.释放资源ois.close();} } 运行结果 读取多个对象 import java.io.FileInputStream; import java.io.IOException; import java.io.ObjectInputStream; import java.util.ArrayList;public class Test_2 {public static void main(String[] args) throws IOException, ClassNotFoundException {//1.创建反序列化流的对象ObjectInputStream ois new ObjectInputStream(new FileInputStream(File\\teacher.txt));//2.读取数据ArrayListTeacher o (ArrayListTeacher) ois.readObject();//System.out.println(o);for (Teacher teacher : o) {System.out.println(teacher);}//3.关流ois.close();} } 运行结果  总结 当涉及到 Java I/O 操作时缓冲流和对象流是两种非常常用的高级流。 缓冲流的功能 提供了缓冲区功能可以减少对底层数据源的直接访问次数从而提高读写效率。适用于对大量数据进行读写操作。 缓冲流的优点 提高了I/O操作的性能减少了与底层数据源的交互次数。提供了逐行读取文本数据的功能方便文本处理操作。 对象流的功能 用于将对象序列化成字节流或反序列化为对象。可以实现对象的持久化、网络传输和跨平台数据交换等功能。 对象流的优点 方便实现对象的保存和加载简化了对象的序列化和反序列化过程。可以实现对象在不同系统之间的传输和共享。 综上所述缓冲流适用于提高读写效率和处理大量数据而对象流则适用于处理对象的序列化和反序列化方便实现对象数据的持久化和传输。根据具体需求可以选择合适的流来进行数据操作。
http://www.zqtcl.cn/news/774989/

相关文章:

  • 怎么添加网站背景音乐定制建站
  • 西安网站建设和推广公司php企业网站开发实训报告
  • 市网站制作番禺绿叶居
  • 网站漂浮物怎么做电子商务网站开发实训体会
  • 电商网站建设定制济南网站建设及推广
  • 网站标签化wordpress 输出评论内容 函数
  • 明星个人网站设计汕头网络推广公司
  • 深圳有哪些做网站公司好武夷山建设局网站
  • 怎么设立网站赚广告费一个网站可以做多少关键字
  • 网站刚建好怎么做能让百度收录成都定制网站建
  • thinkphp网站开发技术做电脑租赁网站
  • 网站设计评语中午版wordpress
  • 邢台企业手机网站建设汕头网站制作后缀
  • 微网站后台内容设置做网站语言排名2018
  • 嘉兴网站制作网站建设外贸营销推广平台有哪些
  • 网站开发集广州高端网站定制开发价格
  • 网站开发培训成都网站建设 报价单 doc
  • 苏州哪里有做淘宝网站的WordPress模板博客主题
  • 网站做中转做任务 网站
  • 深圳住房建设局网站网站的建设教程
  • 6免费建站的网站在线建筑设计
  • 哪些网站做任务可以赚钱的建设厅网站如何查询企业信息
  • 深圳网站设计+建设首选深圳市服装网站建设需求分析报告
  • 肥城网站制作浙江省建设厅信息港官网
  • 手机网站建设进度南宁企业网站设计
  • 建设学校网站方案大淘客网站上的推广怎么做
  • 哪个网站可以免费学设计南阳网站建设页面
  • 外贸公司建网站一般多少钱南京网站建设小程
  • 洛阳霞光做网站公司手机编程教学
  • 深圳正规网站建设公司顺德网页制作公司