io流 多線程

目錄

一、io流

1.什么是io流

2.流的方向

i.輸入流

ii.輸出流

3.操作文件的類型

i.字節流

?1.拷貝

ii.字符流

?3.字符流輸出流出數據

4.字節流和字符流的使用場景

5.練習

6.緩沖流

1.字節緩沖流拷貝文件

2.字符緩沖流特有的方法

1.方法

2.總結

7.轉換流基本用法

8.小練習;

?編輯二、多線程

1.實現方式

i.繼承Thread類的方法進行實現

ii.實現Runnable接口的方式進行實現

iii.利用Callable接口和Future接口方式實現

vi.三種方式對比

v.常見的成員方法

2.守護線程等

i.守護線程

?ii.禮讓線程

iii.插入線程

vi.線程的生命周期?編輯

v.線程的安全

iv.同步方法

三、線程的鎖


一、io流

1.什么是io流

io流:存儲和讀取數據的解決方案

2.流的方向

i.輸入流

ii.輸出流

字節輸出流基本方法

  FileOutputStream fos=new FileOutputStream("a.txt");fos.write(97);fos.close();

3.操作文件的類型

i.字節流

?1.拷貝

ii.字符流

空參read

帶參read

3.字符流輸出流出數據

4.字節流和字符流的使用場景

5.練習

一:

public class Main {public static void main(String[] args) throws IOException {//拷貝一個文件夾,考慮子文件夾//1.創建對象表示數據源File src=new File("D:\\aaa\\src");//2.創建對象表示目的地File dest=new File("D:\\aaa\\dest");//3.調用方法開始拷貝copydir(src,dest);}
/*
作用:拷貝文件
參數一:數據源
參數二:目的地*/private static void copydir(File src, File dest) throws IOException {dest.mkdirs();//如果不存在則創建,如果存在則創建失敗//遞歸//1.進入數據源File[] files = src.listFiles();//會把所有的文件還// 有文件夾的路徑放到數組當中給你返回好//2.遍歷數組for (File file : files) {if (file.isFile()){//3.判斷文件,拷貝FileInputStream fis=new FileInputStream(file);FileOutputStream fos=new FileOutputStream(new File(dest,file.getName()));byte[] bytes=new byte[1024];int len;while((len=fis.read(bytes))!=-1){fos.write(bytes,0,len);}fos.close();fis.close();}else{//判斷文件夾,遞歸copydir(file,new File(dest,file.getName()));}}}
}

二:

^異或:兩邊相同true兩邊不同false,兩次同一個是原來的數據

加密:如以下代碼

解密:再創一個c,將a改成b,b改成c就行了

 FileInputStream fis=new FileInputStream("D:\\java\\io流\\myio\\a.txt");FileOutputStream fos=new FileOutputStream("D:\\java\\io流\\myio\\b.txt");//加密處理int b;while((b=fis.read())!=-1){fos.write(b^2);}fos.close();fis.close();

三:

注意:初始文件里面不要換行否則會隱含\r\n

代碼:

//讀取數據FileReader fr=new FileReader("D:\\java\\io流\\myio\\a.txt");StringBuilder sb=new StringBuilder();int ch;while((ch= fr.read())!=-1){sb.append((char)ch);}fr.close();System.out.println(sb);//排序Integer[] arr = Arrays.stream(sb.toString().split("-")).map(Integer::parseInt)//方法引用.sorted().toArray(Integer[]::new);//再收集到Integer的數組里面//寫出數據FileWriter fw=new FileWriter("D:\\java\\io流\\myio\\a.txt",true);String s = Arrays.toString(arr).replace(", ","-") ;String result= s.substring(1,s.length()-1);fw.write("\r\n");fw.write(result);fw.close();

6.緩沖流

1.字節緩沖流拷貝文件

更加高級的知識點

2.字符緩沖流特有的方法

1.方法
2.總結

7.轉換流基本用法

8.小練習;

二、多線程

1.實現方式

i.繼承Thread類的方法進行實現

打印出來的數據是一會1一會2的

ii.實現Runnable接口的方式進行實現

iii.利用Callable接口和Future接口方式實現

vi.三種方式對比

v.常見的成員方法

2.守護線程等

i.守護線程

ii.禮讓線程

讓其盡可能均勻

iii.插入線程

vi.線程的生命周期

v.線程的安全

eg:買票:如下代碼,結果就是很多票數重復了

小細節:

也可以這樣寫

注意:不同的線程互斥地訪問臨界資源,這是互斥。所有的線程都必須等待其他線程賣了票之后才能賣票,這是同步

//重寫方法快捷鍵:Alt+回車

iv.同步方法

ctrl+alt+m快捷創建函數鍵

三、線程的鎖

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/diannao/42611.shtml
繁體地址,請注明出處:http://hk.pswp.cn/diannao/42611.shtml
英文地址,請注明出處:http://en.pswp.cn/diannao/42611.shtml

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

相關文章

第2集《修習止觀坐禪法要》

請打開補充講表第一面,附表一、念佛攝心方便法。 我們前面講到修止,就是善取所緣境的相貌,然后心于所緣,專一安住;心于所緣,相續安住;達到心一境性的目的。 站在修學凈土的角度,他…

FastAPI+SQLAlchemy數據庫連接

FastAPISQLAlchemy數據庫連接 目錄 FastAPISQLAlchemy數據庫連接配置數據庫連接創建表模型創建alembic遷移文件安裝初始化編輯env.py編輯alembic.ini遷移數據庫 視圖函數查詢 配置數據庫連接 # db.py from sqlalchemy import create_engine from sqlalchemy.orm import sessio…

9、程序化創意

程序化創意 程序化創意(Programmatic Creative)是指通過自動化的方式制作并優化廣告創意,以提高廣告效果。針對不同受眾的多樣化需求,以及同一受眾在不同場景下的消費需求,程序化創意能夠自動生成個性化的精準創意&am…

《C語言》預處理

文章目錄 一、預定義符號二、#define定義常量三、#define定義宏四、宏更函數的對比五、#和##1、#運算符2、##運算符 一、預定義符號 C語言設置了一些預定義符號,可以直接使用,在預處理期間進行處理的。 __FILE__//進行編譯的源文件 __LINE__//文件當前的…

在網站存在漏洞的情況下強化安全防御

一、引言 網絡安全是一個持續的戰斗,尤其是在網站存在已知或未知漏洞的情況下。本文將探討如何在網站存在漏洞的情況下,采取有效措施進行安全防御。 二、理解漏洞 首先,我們需要理解網站的漏洞。這些可能包括SQL注入、跨站腳本&#xff08…

【數據結構與算法】插入排序

💓 博客主頁:倔強的石頭的CSDN主頁 📝Gitee主頁:倔強的石頭的gitee主頁 ? 文章專欄:《數據結構與算法》 期待您的關注 ?

深入Laravel服務容器:構建靈活應用的秘訣

標題:深入Laravel服務容器:構建靈活應用的秘訣 Laravel框架的服務容器是一個強大的工具,它負責管理類的依賴關系和執行依賴注入(DI)。服務容器是Laravel依賴注入系統的核心,使得應用組件之間的耦合度降低&…

一周速遞|全球車聯網產業動態(2024年7月7日)

政策法規 1、7月5日,工業和信息化部部長金壯龍在新聞發布會上表示,新興產業要培育壯大。對新材料、人工智能、智能網聯新能源汽車、新型儲能、氫能、生物制造、商業航天、低空經濟等新興產業,要繼續用好國內大市場和豐富應用場景&#xff0c…

人工智能、機器學習、神經網絡、深度學習和卷積神經網絡的概念和關系

人工智能(Artificial Intelligence,縮寫為AI)--又稱為機器智能,是研究、開發用于模擬、延伸和擴展人的智能的理論、方法、技術及應用系統的一門新的技術科學。 人工智能是智能學科重要的組成部分,它企圖了解智能的實質…

【問題解決】 pyocd 報錯 No USB backend found 的解決方法

pyocd 報錯 No USB backend found 的解決方法 本文記錄了我在Windows 10系統上遇到的pyocd命令執行報錯——No USB backend found 的分析過程和解決方法。遇到類似問題的朋友可以直接參考最后的解決方法,向了解問題發送原因的可以查看原因分析部分。 文章目錄 pyoc…

排序-java(插入排序和選擇排序)

一,分類 主要的排序大致分為以下幾類: 1,插入排序,又分為直接插入排序和希爾排序 2,選擇排序,又分為選擇排序和堆排序 3,交換排序,又分為冒泡排序和快速排序 4,歸并…

springboot配置掃描生效順序

文章目錄 舉例分析項目結構如下noddles-user-backend 兩個配置文件noddles-user-job 配置文件noddles-user-server 配置文件問題:server和Job啟動時對應加載的數據庫配置為哪一個? 總結 在微服務架構中,backend模塊會定義一個基礎的配置文件,…

Report Design Analysis報告之logic level詳解

目錄 一、前言 二、Logic Level distribution 2.1 logic level配置 2.2 Logic Level Distribution報告 2.3 Logic Level 報告詳情查看 2.4 Route Distributions 報告詳情查看 2.5 示例代碼 一、前言 ?在工程設計中,如果需要了解路徑的邏輯級數,可…

CentOS7安裝部署Anaconda

文章目錄 CentOS7安裝部署Anaconda一、前言1.組件2.環境 二、正文1.下載安裝腳本2.安裝Anaconda3.常用指令 CentOS7安裝部署Anaconda 一、前言 1.組件 Anaconda 開源的Anaconda個人版 (正式為Anaconda發行版)是在Linux,Windows和Mac OS X上…

卷積神經網絡基礎篇

文章目錄 1、卷積層1.1、激活函數1.3、sigmoid1.4、Tanh1.5、ReLU1.6、Leaky ReLU1.7、誤差計算 2、池化層3、全連接層4、CNN訓練 參考鏈接1 參考鏈接2 1、卷積層 卷積層(Convolutional layer),這一層就是卷積神經網絡最重要的一個層次&…

動手學深度學習(Pytorch版)代碼實踐 -循環神經網絡- 56門控循環單元(`GRU`)

56門控循環單元(GRU) 我們討論了如何在循環神經網絡中計算梯度, 以及矩陣連續乘積可以導致梯度消失或梯度爆炸的問題。 下面我們簡單思考一下這種梯度異常在實踐中的意義: 我們可能會遇到這樣的情況:早期觀測值對預測…

機器人動力學模型及其線性化阻抗控制模型

機器人動力學模型 機器人動力學模型描述了機器人的運動與所受力和力矩之間的關系。這個模型考慮了機器人的質量、慣性、關節摩擦、重力等多種因素,用于預測和解釋機器人在給定輸入下的動態行為。動力學模型是設計機器人控制器的基礎,它可以幫助我們理解…

html的浮動作用詳解

HTML中的“浮動”(Float)是一個CSS布局技術,它原本設計用于文本環繞圖像或實現簡單的布局效果,比如并排排列元素。然而,隨著Web開發的演進,浮動也被廣泛用于更復雜的頁面布局設計中,盡管現代CSS…

2024/7/7周報

文章目錄 摘要Abstract文獻閱讀題目問題本文貢獻問題描述圖神經網絡Framework實驗數據集實驗結果 深度學習MAGNN模型相關代碼GNN為什么要用GNN?GNN面臨挑戰 總結 摘要 本周閱讀了一篇用于多變量時間序列預測的多尺度自適應圖神經網絡的文章,多變量時間序…

SAP已下發EWM的交貨單修改下發狀態

此種情況針對EWM未接收到ERP交貨單時,可以使用此程序將ERP交貨單調整為未分配狀態,在進行調整數據后,然后使用VL06I(啟用自動下發EWM配置,則在交貨單修改保存后會立即下發EWM)重新下發EWM系統。 操作步驟如…