中文亚洲精品无码_熟女乱子伦免费_人人超碰人人爱国产_亚洲熟妇女综合网

當(dāng)前位置: 首頁 > news >正文

織夢做企業(yè)網(wǎng)站教程重慶seo博客

織夢做企業(yè)網(wǎng)站教程,重慶seo博客,網(wǎng)站優(yōu)化成本,四川學(xué)校網(wǎng)站建設(shè)公1 什么是文件? 針對硬盤這種持久化存儲的I/O設(shè)備,當(dāng)我們想要進(jìn)行數(shù)據(jù)保存時(shí),往往不是保存成一個(gè)整體,而是獨(dú)立成一個(gè)個(gè)的單位進(jìn)行保存,這個(gè)獨(dú)立的單位就被抽象成文件的概念 2 文件路徑 文件路徑就是指咱們文件系統(tǒng)中…

1 什么是文件?

針對硬盤這種持久化存儲的I/O設(shè)備,當(dāng)我們想要進(jìn)行數(shù)據(jù)保存時(shí),往往不是保存成一個(gè)整體,而是獨(dú)立成一個(gè)個(gè)的單位進(jìn)行保存,這個(gè)獨(dú)立的單位就被抽象成文件的概念

2 文件路徑

文件路徑就是指咱們文件系統(tǒng)中一個(gè)文件/目錄(文件夾)的具體位置

由于文件系統(tǒng)是以樹形結(jié)構(gòu)來組織文件和目錄,所以文件路徑就是從樹根節(jié)點(diǎn)出發(fā),沿著樹杈往下走,直到到達(dá)目標(biāo)文件,這中間所經(jīng)過的內(nèi)容

2.1 絕對路徑

Windows是從“此電腦”開始的,表示路徑的時(shí)候可以忽略“此電腦”,直接從盤符開始

例如:F:\人工智能程序設(shè)計(jì)\我的python案例\Test1.py

實(shí)際表示路徑是通過字符串來表示,每個(gè)目錄之間使用‘/’(斜杠)來分割.(只有Windows采用‘\’(反斜杠)來分割)

從盤符開始一層層往下找,這個(gè)過程,得到的路徑就叫絕對路徑

2.2 相對路徑

從給定的目標(biāo)開始,一層一層往下找,這個(gè)過程得到的路徑就是相對路徑

eg:
在這里插入圖片描述

其中:
‘.’是一個(gè)特殊符號,在相對路徑中代表當(dāng)前目錄
‘. .’表示當(dāng)前目錄的上級目錄

3 文本文件和二進(jìn)制文件

文本文件存儲的是被字符集編碼的文本
二進(jìn)制文件存儲的是二進(jìn)制文件,不被字符集限制

4 文件系統(tǒng)操作

java標(biāo)準(zhǔn)庫給我們提供了File類,File對象是對硬盤上一個(gè)文件的抽象
(文件是儲存在硬盤上的,直接用代碼操作硬盤不方便,就在內(nèi)存中創(chuàng)建一個(gè)對應(yīng)的對象,操作這個(gè)內(nèi)存中的對象就可以間接的影響到硬盤中的文件的情況了~~遙控器)

4.1 構(gòu)造File對象

構(gòu)造的過程可以使用相對路徑/絕對路徑來進(jìn)行初始化,這個(gè)路徑指向的文件可以是真實(shí)存在的也可以是不存在的
在這里插入圖片描述

4.2 File提供的方法

在這里插入圖片描述

get方法代碼演示:

import java.io.File;
import java.io.IOException;public class IO_Test1 {public static void main(String[] args) throws IOException {File file = new File("./cat.jpg");System.out.println(file.getParent());   //返回 File 對象的父目錄文件路徑System.out.println(file.getName());     //返回 FIle 對象的純文件名稱System.out.println(file.getPath());       //返回 File 對象的文件路徑System.out.println(file.getAbsolutePath());       //返回 File 對象的絕對路徑System.out.println(file.getCanonicalPath());        //返回 File 對象的修飾過的絕對路徑}
}

在這里插入圖片描述
普通文件的創(chuàng)建和刪除:

import java.io.File;
import java.io.IOException;public class IO_Test2 {public static void main(String[] args) throws IOException {// 在相對路徑中, ./ 通??梢允÷?/span>File file = new File("hello_IO.txt");       // 該文件不存在System.out.println(file.exists());      //判斷 File 對象描述的文件是否真實(shí)存在System.out.println(file.isDirectory());     //判斷 File 對象代表的文件是否是一個(gè)目錄System.out.println(file.isFile());      //判斷 File 對象代表的文件是否是一個(gè)普通文件//創(chuàng)建文件file.createNewFile(); //根據(jù) File 對象,自動創(chuàng)建一個(gè)空文件。成功創(chuàng)建后返回 true//創(chuàng)建后該文件存在System.out.println(file.exists());      //判斷 File 對象描述的文件是否真實(shí)存在System.out.println(file.isDirectory());     //判斷 File 對象代表的文件是否是一個(gè)目錄System.out.println(file.isFile());      //判斷 File 對象代表的文件是否是一個(gè)普通文件//刪除文件file.delete();System.out.println("刪除文件之后");System.out.println(file.exists());}
}

在這里插入圖片描述

5 文件內(nèi)容操作

5.1 字符流

什么是字符流?

針對文本文件,提供了一組類,統(tǒng)稱為“字符流”

典型代表:Reader , Writer。 讀寫的基本單位是字符

在這里插入圖片描述

在這里插入圖片描述

InputStream使用方法

🚀打開文件和關(guān)閉文件

InputStream是抽象類:
在這里插入圖片描述
關(guān)于 InputStream 的實(shí)現(xiàn)類有很多,我們現(xiàn)在只關(guān)心從文件中讀取,所以使用 FileInputStream類

InputStream inputStream = new FileInputStream("f:/test.txt");

![在這里插入圖片描述](https://img-blog.csdnimg.cn/81be2241a32d4f1795ff001901560a4e.png
注意!!!:這里有了打開文件的操作,后面需要手動釋放資源(文件描述符)!!!! inputStream.close();
進(jìn)程的PCB結(jié)構(gòu)中又“文件描述符表”,其記錄了當(dāng)前進(jìn)程都打開了哪些文件,每次打開文件,就會在表中申請到一個(gè)位置~這個(gè)表可以視為一個(gè)數(shù)組,數(shù)組的下標(biāo)就是文件描述符,數(shù)組元素就是這個(gè)文件在內(nèi)核中的結(jié)構(gòu)體的表示。
由于這個(gè)表長度是有限的不能無休止的打開又不釋放,一旦滿了再嘗試打開就會打開失敗,造成文件資源泄露!!!

import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStream;public class IO_Test3 {public static void main(String[] args) throws IOException {// 這個(gè)過程, 相當(dāng)于 C 中的 fopen , 文件的打開操作InputStream inputStream = new FileInputStream("f:/test.txt");inputStream.close();}
}

執(zhí)行中間,可能會出一些問題,比如return或者拋異常,就會導(dǎo)致close執(zhí)行不到!
所以我們使用try...finally

import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStream;public class IO_Test3 {public static void main(String[] args) throws IOException {// 這個(gè)過程, 相當(dāng)于 C 中的 fopen , 文件的打開操作InputStream inputStream = null;try {inputStream = new FileInputStream("f:/test.txt");}finally {inputStream.close();}}
}

但是上面這個(gè)代碼太麻煩了(丑)
我們使用try with resources (帶有資源的try操作,會在try結(jié)束自動執(zhí)行close關(guān)閉操作)

import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStream;public class IO_Test3 {public static void main(String[] args) throws IOException {try(InputStream inputStream = new FileInputStream("f:/test.txt")) {//打開文件和關(guān)閉文件}}
}
🚀讀文件:

InputStream提供的read方法有三個(gè)版本:
在這里插入圖片描述

在這里插入圖片描述
其中read的無參數(shù)版本是一次讀一個(gè)字節(jié)(一次返回一個(gè)字節(jié))
但是我們需要用int來接受read的返回值====>

int b = inputStream.read();

在這里插入圖片描述
完整代碼:

import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStream;public class IO_Test3 {public static void main(String[] args) throws IOException {try(InputStream inputStream = new FileInputStream("f:/test.txt")) {//讀文件// read 一次返回的是一個(gè)字節(jié). 但是此處的返回值類型是 int !!!while (true) {int b = inputStream.read();if (b == -1) {// 讀到末尾了, 結(jié)束循環(huán)即可break;}System.out.printf("%x\n", b);}}}
}
🚀 寫文件
package io;import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.OutputStream;public class IODemo7 {public static void main(String[] args) {try (OutputStream outputStream = new FileOutputStream("d:/test.txt")) {outputStream.write(97);outputStream.write(98);outputStream.write(99);} catch (IOException e) {e.printStackTrace();}}
}

6 文件操作案例

掃描指定目錄,并找到名稱或者內(nèi)容中包含指定字符的所有普通文件(不包含目錄)
解:
在這里插入圖片描述

import java.io.*;
import java.util.Scanner;public class IO_Test4 {public static void main(String[] args) {Scanner scanner = new Scanner(System.in);// 1. 先讓用戶指定一個(gè)要搜索的根目錄System.out.println("請輸入要掃描的根目錄: ");File rootDir = new File(scanner.next());if (!rootDir.isDirectory()) {System.out.println("輸入有誤, 您輸入的目錄不存在!");return;}// 2. 讓用戶輸入一個(gè)要查詢的詞.System.out.println("請輸入要查詢的詞: ");String word = scanner.next();// 3. 遞歸的進(jìn)行目錄/文件的遍歷了scanDir(rootDir, word);}private static void scanDir(File rootDir, String word) {// 列出當(dāng)前的 rootDir 中的內(nèi)容. 沒有內(nèi)容, 直接遞歸結(jié)束File[] files = rootDir.listFiles();if (files == null) {// 當(dāng)前 rootDir 是一個(gè)空的目錄, 這里啥都沒有.// 沒必要往里遞歸了return;}// 目錄里有內(nèi)容, 就遍歷目錄中的每個(gè)元素for (File f : files) {System.out.println("當(dāng)前搜索到: " + f.getAbsolutePath());if (f.isFile()) {// 是普通文件// 打開文件, 讀取內(nèi)容, 比較看是否包含上述關(guān)鍵詞String content = readFile(f);if (content.contains(word)) {System.out.println(f.getAbsolutePath() + " 包含要查找的關(guān)鍵字!");}} else if (f.isDirectory()) {// 是目錄// 進(jìn)行遞歸操作scanDir(f, word);} else {// 不是普通文件, 也不是目錄文件, 直接跳過continue;}}}private static String readFile(File f) {// 讀取文件的整個(gè)內(nèi)容, 返回出來.// 使用字符流來讀取. 由于咱們匹配的是字符串, 此處只能按照字符流處理, 才是有意義的.StringBuilder stringBuilder = new StringBuilder();try (Reader reader = new FileReader(f)) {// 一次讀一個(gè)字符, 把讀到的結(jié)果給拼裝到 StringBuilder 中. 統(tǒng)一轉(zhuǎn)成 Stringwhile (true) {int c = reader.read();if (c == -1) {break;}stringBuilder.append((char)c);}} catch (IOException e) {e.printStackTrace();}return stringBuilder.toString();}
}
http://www.risenshineclean.com/news/7661.html

相關(guān)文章:

  • 幼兒園網(wǎng)站建設(shè)情況統(tǒng)計(jì)表寧波網(wǎng)站推廣優(yōu)化哪家正規(guī)
  • 深圳網(wǎng)站優(yōu)化方法網(wǎng)絡(luò)銷售培訓(xùn)學(xué)校
  • 尺寸在線做圖網(wǎng)站免費(fèi)關(guān)鍵詞排名優(yōu)化軟件
  • 微信群運(yùn)營杭州搜索引擎優(yōu)化公司
  • 網(wǎng)站策劃報(bào)告怎么寫第三方關(guān)鍵詞優(yōu)化排名
  • 樂陵最新疫情最新消息寧波seo網(wǎng)頁怎么優(yōu)化
  • 怎樣運(yùn)營網(wǎng)站代運(yùn)營公司排名
  • 中國建設(shè)銀行官方網(wǎng)站登錄入口seo推廣招聘
  • 在哪里可以找到做網(wǎng)站的公司手游推廣去哪里找客源
  • 阿里云怎么部署網(wǎng)站網(wǎng)站排名靠前的方法
  • 阿里國際站韓語網(wǎng)站怎么做軟文發(fā)布平臺排名
  • 制作網(wǎng)站的登錄界面怎么做福州seo經(jīng)理招聘
  • 威海城市 建設(shè)信息網(wǎng)站網(wǎng)址注冊查詢
  • wordpress傻瓜建站教程網(wǎng)站推廣的優(yōu)化
  • 怎么做一個(gè)手機(jī)網(wǎng)站app拉新項(xiàng)目一手渠道商
  • 保山網(wǎng)站開發(fā)服務(wù)百度的廣告怎么免費(fèi)發(fā)布
  • 微信公眾號文章怎么轉(zhuǎn)換wordpressseo搜索引擎優(yōu)化課程
  • 一鍵轉(zhuǎn)發(fā)軟件批發(fā)商城seo什么意思
  • 網(wǎng)站seo 優(yōu)化重慶seo小潘大神
  • wordpress手機(jī)底部導(dǎo)航愛采購seo
  • 哪些網(wǎng)站是動態(tài)的教育機(jī)構(gòu)加盟
  • 谷歌海外推廣衡陽seo優(yōu)化
  • 網(wǎng)站做ulr跳轉(zhuǎn)網(wǎng)絡(luò)銷售好做嗎
  • 網(wǎng)站做302重定向會怎么樣極速建站網(wǎng)站模板
  • 做網(wǎng)站都需要哪些費(fèi)用四川seo關(guān)鍵詞工具
  • wordpress jq網(wǎng)站推廣優(yōu)化技巧
  • 網(wǎng)站建設(shè)完成外網(wǎng)無法訪問站長工具高清
  • 免費(fèi)軟件下載官方網(wǎng)站google搜索
  • wordpress獲取友情鏈接網(wǎng)絡(luò)優(yōu)化是做啥的
  • 珠海做網(wǎng)站及推廣國內(nèi)新聞大事