day22 Java学习 IO流(序列流)

IO流(序列流)

     序列流:

                  * 可以把多个字节输入流整合成一个,从序列流中读取数据时,将从被整合的第一个流开始读,读完一个之后继续读第二个。

    整合方式:

                  * Seq uenceInputStream ( InputStream ,InputStream )

 

IO流(序列流整合多个)

    public static void main(String[] args) throws IOException {FileInputStream fis1 = new FileInputStream("test1.txt");FileInputStream fis2 = new FileInputStream("test2.txt");FileInputStream fis3 = new FileInputStream("test.txt");Vector<InputStream> v = new Vector<>();v.add(fis1);v.add(fis2);v.add(fis3);Enumeration<InputStream> en = v.elements();SequenceInputStream sis = new SequenceInputStream(en);FileOutputStream fos = new FileOutputStream("list.txt");int b;while ((b = sis.read()) != -1) {fos.write(b);}sis.close();fos.close();}
例子

 

IO流(内存输出流)

  内存输出流:

               * 该输出可以向内存中写数据,把内存当作一个缓冲区,写出之后可以一次性获取出所有数据。

    public static void main(String[] args) throws IOException {FileInputStream fis1 = new FileInputStream("test1.txt");ByteArrayOutputStream by = new ByteArrayOutputStream(); // 在内存中创建了可以增长的内存数组int b;while ((b = fis1.read()) != -1) { // 将读到的数据逐个写到内存中
            by.write(b);}System.out.println(by); // 将缓冲区的内容转换成了字符串
        fis1.close();}
例子

 

IO流(随机访问流和读写数据)

   随机访问流:

                      * RandomAccessFile类不属于流,是Object类的子类,但他融合了InputStream和OutputStream的功能。支持对随机访问文件的读取和写入。

    seek():设置指定位置读和写

 

IO流(对象操作流 )

   对象操作流 :该流可以将一个对象写出。或者读取一个对象到程序中,也就是执行了序列化和反序列化的操作。       

   使用方式:

               new ObjectOutputStream(OutputStream),writeObject( )。 

               new ObjectInputStream(OutputStream)    对象输入流(反序列化)

 

IO流(对象操作流优化)

     

    public static void main(String[] args) throws FileNotFoundException, IOException, ClassNotFoundException {Person p1 = new Person("张三", 14);Person p2 = new Person("李四", 15);Person p3 = new Person("王五", 16);ArrayList<Person> list = new ArrayList<>(); list.add(p1);list.add(p2);list.add(p3);ObjectOutputStream oos = new ObjectOutputStream(new FileOutputStream("e.txt"));oos.writeObject(list);//将整个集合一次写出
        oos.close();ObjectInputStream ois = new ObjectInputStream(new FileInputStream("e.txt"));ArrayList<Person> list1 = (ArrayList<Person>) ois.readObject();  //将整个集合一次读取for (Person person : list1) {System.out.println(person);}ois.close();}
优化例子

 

IO流(数据输入输出流)

    数据输入输出流:

              * DataInputStream,DataOutputStream可以按照基本数据类型大小读写数据。

    使用方式:

    public static void main(String[] args) throws FileNotFoundException, IOException, ClassNotFoundException {DataOutputStream dos=new DataOutputStream(new FileOutputStream("g.txt"));dos.writeInt(997);dos.writeInt(998);dos.writeInt(999);dos.close();DataInputStream dis=new DataInputStream(new FileInputStream("g.txt"));int a=dis.readInt();int b=dis.readInt();int c=dis.readInt();System.out.println(a);System.out.println(b);System.out.println(c);}
例子

 

 IO流(Properties概述和作为Map集合的使用)

      Properties的概述:

                     * Properties是Hashtable的子类。

                     * Properties类表示了一个持久的属性集。

                     * Properties可保存在流中或从流中加载。

                     * 属性列表中每个键及其对象值都是一个字符串

    public static void main(String[] args) {Properties p= new Properties();p.put("a", 1);System.out.println(p);System.out.println(p.get("a"));}
例子

 

  IO流(Properties的特殊功能使用)

      * public Object setProperty( String key ,Sring value) :设置键和值

      * public String  getProperty( String key) :根据键来获取值

      * public Enumeration <string>   :迭代    stringPropertyNames():拿到所有的键 

    public static void main(String[] args) {Properties p= new Properties();p.setProperty("a", "2");p.setProperty("b", "3");Enumeration<String> en= (Enumeration<String>) p.propertyNames();while (en.hasMoreElements()) {String key=en.nextElement();String value=p.getProperty(key);System.out.println(key+"="+value);}}
例子

 

IO流(Properties的load( )和Store ( ))

   

    public static void main(String[] args) throws FileNotFoundException, IOException {Properties p= new Properties();System.out.println("读取前:"+p);p.load(new FileInputStream("a.txt"));      //load()读取文件System.out.println("读取后:"+p);p.setProperty("name", "lisi");p.store(new FileOutputStream("a.txt"), null); //store()第二个参数是用来描述文件列表的,如果不描述可以传NULLSystem.out.println("添加后:"+p);}
例子

 

转载于:https://www.cnblogs.com/feng0001/p/10965452.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/277584.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Unraveling the JPEG file

(文章还剩实践部分没写&#xff0c;答辩过后补上...) JPEG文件在当下数字化生活中是无处不在的&#xff0c;但是在熟悉的JPEG面纱背后&#xff0c;隐藏着一些算法&#xff0c;它们去除了人类眼中无法察觉到的细节。这产生了最高的视觉质量与最小的文件大小。让我们来看看这一算…

mysql interval 3 day_Mysql之INTERVAL与DATE_SUB与EXTRACT函数的使用

1. INTERVALINTERVAL代表的是时间间隔MySQL中的时间间隔类型有如下几种:1.1 利用INTERVAL做时间的加减法示例&#xff1a;加法:SQL>SELECT DATE 2018-11-01 INTERVAL 10 11 DAY_HOUR;结果:2018-11-11 11:00:00减法&#xff1a;SQL> select date 2018-11-11 11:00:00 -INT…

0727日志

为什么80%的码农都做不了架构师&#xff1f;>>> c端线上地址 http://x.diandanme.com/fe/?d183#/ 什么时候来需求&#xff0c;我做好准备了吗&#xff1f; eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJodHRwOlwvXC94LmRpYW5kYW5tZS5jb21cL2FwaVwvd2VjaGF0XC…

Python基础学习总结__Day3

一、集合 1&#xff0e;特性&#xff1a;无序且天生去重&#xff0c;格式为{} 2&#xff0e;作用&#xff1a; &#xff08;1&#xff09;去重 &#xff08;2&#xff09;关系测试 3&#xff0e;可调用函数&#xff08;常见对列表操作&#xff09; &#xff08;1&#xff09;取…

day8网络编程,面向对象1

一.只是回顾 1.导入模块的顺序,首先从当前目录下找,再从环境变量里面找,使用"sys.path.insert(0,需要导入的环境变量)"加入需要导入文件的环境变量; 2.如果不同项目中有相同的文件,需要导入文件,需要将非当前项目中右键添加的环境变量取消,将当前的环境变量添加上去;…

ES语法及-IK分词器

{"query": {"query_string": {"default_field": "title",//全文搜索"query": "器大"}} } "id":1, "title":"Elasticsearch是一个基于Lucene的搜索服务器", "content":&q…

python多任务编程_python线程的多任务编程

多任务多任务介绍对于人来说&#xff0c;一边听歌&#xff0c;一边跳舞就是多任务。对于电脑&#xff0c;简单的说&#xff0c;同一时间执行多个程序处理数据叫做多任务多任务理解单核CPU单核cpu在处理多任务的时候是根据时间片轮转的方式进行的&#xff0c;比如执行QQ1us&…

简单分析Guava中RateLimiter中的令牌桶算法的实现

为什么80%的码农都做不了架构师&#xff1f;>>> 令牌桶算法是网络流量整形&#xff08;Traffic Shaping&#xff09;和速率限制&#xff08;Rate Limiting&#xff09;中最常使用的一种算法。典型情况下&#xff0c;令牌桶算法用来控制发送到网络上的数据的数目&am…

gcc oracle mysql_Linux下C语言访问Oracle数据库Demo

前提条件1. Linux环境已经存在&#xff0c;安装好了Oracle本demo 运行环境本地环境 RedHat LINUX AS 4 ,ORACLE 10G本地数据库sid orcl,ip:127.0.0.1,用户名:kingbi&#xff0c;密码&#xff1a;kingbi,表dsd_test. 显示表dsd_test 的所有记录.步骤&#xff1a;(1) 创建表 …

炼数成金数据分析课程---16、机器学习中的分类算法(交叉内容,后面要重点看)...

炼数成金数据分析课程---16、机器学习中的分类算法&#xff08;交叉内容&#xff0c;后面要重点看&#xff09; 一、总结 一句话总结&#xff1a; 大纲实例快速学习法 主要讲解常用分类算法(如Knn、决策树、贝叶斯分类器等)的原理及python代码实现 1、什么是分类&#xff1f; 分…

NFS配置详解

1、NFS服务介绍1.1 什么是NFS&#xff1f;NFS是Network File System的缩写。中文意思是网络文件系统。它的主要功能是通过网络&#xff08;一般是局域网&#xff09;让不同的主机系统之间可以共享文件或者目录。NFS客户端&#xff08;一般为应用服务器&#xff0c;例如web&…

idea用法

更新gradle的依赖后&#xff0c;刷新项目引入jar包的方法&#xff1a; view--Tool Buttons 在右侧 Gradle 点刷新 转载于:https://www.cnblogs.com/z360519549/p/10994897.html

免费下载!5本阿里技术好书,带你看更大的世界

共享、开源是互联网技术发展的重要精神。在过去&#xff0c;25000多万名阿里工程师&#xff0c;撰写了一系列精品技术丛书&#xff0c;从算法、研发到职业人生随笔&#xff0c;应有尽有。目前该系列丛书已全部开放下载&#xff0c;供技术人免费阅读。 今天小编整理了其中的五本…

乌班图系统16.04安装

本例jiyu基于Ubuntu16.04 64位版本为例进行安装&#xff0c;安装的方式有多种&#xff0c;本文使用光盘进行安装安装前应准备好&#xff0c;将Ubuntu的镜像文件刻成光盘,然后将光盘放入光驱,并设置服务器从光盘启动,开机到如下界面&#xff1a;按Enter键到下一步&#xff0c;如…

使用maven构建项目候,jar包错误的解决办法

1、删除架包&#xff0c;重新下载&#xff0c;右键项目点击"run as"中的“maven clean”,然后再maven中找到Update Project 2、可以在代码中&#xff0c;把鼠标放到报错的架包上 点击划红线部分&#xff0c;进行安装 转载于:https://www.cnblogs.com/qingqian/p/1099…

模拟输入(ADC-A0)

ESP8266具有内置的10位ADC&#xff0c;只有一个ADC通道(A0引脚)&#xff0c;即只有一个ADC输入引脚可读取来自外部器件的模拟电压 ESP8266上的ADC通道和芯片供电电压复用&#xff0c;也就是说我们可以将其设置为测量系统电压或者外部电压 测量外部电压&#xff1a; analogRead(…

个人作业-Alpha项目测试

这个作业属于哪个课程https://edu.cnblogs.com/campus/xnsy/SoftwareEngineeringClass2作业地址https://edu.cnblogs.com/campus/xnsy/SoftwareEngineeringClass2/homework/3340团队名称脑阔疼https://www.cnblogs.com/chaserFF/p/10994338.html这个作业的目标完成班级项目互评…

Jenkins的Pipeline脚本在美团餐饮SaaS中的实践

2019独角兽企业重金招聘Python工程师标准>>> 一、背景 在日常开发中&#xff0c;我们经常会有发布需求&#xff0c;而且还会遇到各种环境&#xff0c;比如&#xff1a;线上环境&#xff08;Online&#xff09;&#xff0c;模拟环境&#xff08;Staging&#xff09;&…

【springboot+easypoi】一行代码搞定excel导入导出

原文&#xff1a;https://www.jianshu.com/p/5d67fb720ece 开发中经常会遇到excel的处理&#xff0c;导入导出解析等等&#xff0c;java中比较流行的用poi&#xff0c;但是每次都要写大段工具类来搞定这事儿&#xff0c;此处推荐一个别人造好的轮子【easypoi】&#xff0c;下面…

用java编写一个计算器_用java程序编写一个计算器

展开全部给你一个参考&#xff0c;希望不62616964757a686964616fe58685e5aeb931333330343261要被百度吞了当晚餐import java.awt.BorderLayout;import java.awt.GridLayout;import java.awt.event.MouseEvent;import java.awt.event.MouseListener;import java.text.DecimalFor…