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.pswp.cn/news/277584.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/277584.shtml
英文地址,請注明出處:http://en.pswp.cn/news/277584.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

網站建設-簡單動態網站搭建

通過前面Clouder課程的學習&#xff0c;或許你已經掌握了在云服務器上發布和部署靜態網頁的方法&#xff0c;那么如何搭建一個可以隨時更新內容的動態網站&#xff1f;通過本課程的學習&#xff0c;你將掌握如何在云端搭建全世界使用最多的WordPress網站的方法&#xff0c;并學…

mysql的concat函數_MySQL中concat函數(連接字符串)

MySQL中concat函數使用方法&#xff1a;CONCAT(str1,str2,…)返回結果為連接參數產生的字符串。如有任何一個參數為NULL &#xff0c;則返回值為 NULL。注意&#xff1a;如果所有參數均為非二進制字符串&#xff0c;則結果為非二進制字符串。如果自變量中含有任一二進制字符串&…

利用airTest的圖像實別技術測試Web應用

airTest的第三方類庫中有圖像實別功能&#xff0c;根據官網的介紹&#xff0c;這個功能是能夠在Windows上用來定位元素&#xff0c;進行操作的。嘗試過以下腳本&#xff0c;發現真的可以。 from selenium.webdriver.chrome.options import Options from selenium import webdri…

MySQL主從復制故障解決

叢庫復制停止&#xff0c;進叢庫查看&#xff0c;報錯1007&#xff0c;數據庫已存在&#xff0c;不能創建數據庫 mysql> show slave status\G; Slave_IO_Running: Yes Slave_SQL_Running: No Last_Errno: 1007 Last_Error: Error Cant create database test; database exis…

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…

(二十四)面向對象

class Car {int num;String name;String color;public static void run() {System.out.println("行駛中");} } //再類中定義的變量&#xff1a;成員變量 //在類中定義的函數&#xff1a;成員函數 class Demo1 {public static void main(String[] args) {//創建一個ca…

mysql 三主_MySQL主主復制3

一、創建并授權用戶在每一臺(主)服務器上創建一個用戶&#xff0c;并為之授權&#xff0c;使它們可以互相訪問彼此的數據庫在Server-1上&#xff1a;創建一個充許Server-2來訪問的用戶server2,密碼為&#xff1a;server2mysql> GRANT REPLICATION SLAVE ON *.*> TO ‘ser…

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.如果不同項目中有相同的文件,需要導入文件,需要將非當前項目中右鍵添加的環境變量取消,將當前的環境變量添加上去;…

mysql練手數據_MySQL新手練習

操作插入數據 的語法 :INSERT INTO 表名稱 VALUES(值1&#xff0c;值2&#xff0c;......);修改數據 的語法&#xff1a;UPDATE 表名稱 SET 字段名1 值1, 字段名2值2,...... 【WHERE 條件】;刪除數據 的語法&#xff1a;delete from 表名 【[where 條件】;delete 表1&#xff…

spring security config

spring secuirty 相關的配置解析 permitAll()與web.ignoring() ingore是完全繞過了spring security的所有filter&#xff0c;相當于不走spring securitypermitall沒有繞過spring security&#xff0c;其中包含了登錄的以及匿名的。轉載于:https://www.cnblogs.com/MND1024/p/10…

TSPITR方式數據庫找回誤操作丟失的數據

一、TSPITR介紹 TSPITR全稱是Tablespace Point In Time Recover&#xff08;表空間基于時間點的不完全恢復&#xff09;。原理是通過輔助實例基于時間還原出誤操作前的數據通過DataPump將數據導入到目標數據庫。TSPITR的最大好處是不需要生產庫停機。 二、適用場景 表空間時點恢…

烏班圖系統的MySQL_烏班圖系統mysql主從備份

一&#xff0e;準備系統&#xff1a;ubuntu 14.04.2 LTSMysql: server version 5.5.43兩臺主機可以互相通信&#xff1a;192.168.1.11 master192.168.1.12 slave二&#xff0e;步驟Master部分&#xff1a;1.創建備份帳號&#xff1a;slave密碼&#xff1a;slaveGrant repl…

mysql table alter_MySQL-ALTER TABLE命令學習[20180503]

學習ALTER TABLE刪除、添加和修改字段和類型CREATE TABLE alter_tab01(id int,col01 char(20))enginInnoDB default charsetutf8;刪除字段ALTER TABLE DROP ;mysql> alter table alter_tab01 dropcol01;Query OK, 0 rows affected (0.01sec)Records: 0 Duplicates: 0 Warnin…

時間戳轉換

13 位時間戳轉換 1 通過java&#xff0c;如下&#xff1a; public static String timeStamp2Date(String time) {Long timeLong Long.parseLong(time);SimpleDateFormat sdf new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");//要轉換的時間格式Date date;try {date …

React.Component(V16.8.6)

組件的生命周期 掛載 當組件實例被創建并插入 DOM 中時&#xff0c;其生命周期調用順序如下&#xff1a; constructor()static getDerivedStateFromProps()render()componentDidMount()componentWillMount() 之后將廢棄 更新 當組件的 props 或 state 發生變化時會觸發更新。組…

mysql date類型加一個月jdbc_JDBC操作數據庫Date類型數據

JDBC操作數據庫Date類型數據由于java原生的工具類java.util提供的Date對象與JDBC提供的Date對象并不相同分別是java.util.Date和java.sql.Datejava.sql.Date是java.util.Date的子類所以在進行增刪改查部分操作中&#xff0c;不能直接將原生工具類的Date對象直接運用到JDBC中可以…

使用深度學習TensorFlow框架進行圖片識別

Apsara Clouder大數據專項技能認證&#xff1a;使用深度學習TensorFlow框架進行圖片識別本認證系統的介紹了深度學習的一些基礎知識&#xff0c;以及Tensorflow的工作原理。通過阿里云機器學習PAI基于經典的CIFAR-10數據集實現圖片識別。學員可以通過本實驗&#xff0c;對深度學…