国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

Java eight 解讀流(Stream)、文件(File)、IO和異常處理的使用方法

這篇具有很好參考價(jià)值的文章主要介紹了Java eight 解讀流(Stream)、文件(File)、IO和異常處理的使用方法。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問(wèn)。

Java 流(Stream)、文件(File)和IO

java.io 包幾乎包含了所有操作輸入、輸出需要的類(lèi)。所有這些流類(lèi)代表了輸入源和輸出目標(biāo)。

Java.io 包中的流支持很多種格式,比如:基本類(lèi)型、對(duì)象、本地化字符集等等。

一個(gè)流可以理解為一個(gè)數(shù)據(jù)的序列。輸入流表示從一個(gè)源讀取數(shù)據(jù),輸出流表示向一個(gè)目標(biāo)寫(xiě)數(shù)據(jù)。

讀取控制臺(tái)輸入

//使用 BufferedReader 在控制臺(tái)讀取字符
 
import java.io.*;
 
public class BRRead {
    public static void main(String[] args) throws IOException {
        char c;
        // 使用 System.in 創(chuàng)建 BufferedReader
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        System.out.println("輸入字符, 按下 'q' 鍵退出。");
        // 讀取字符
        do {
            c = (char) br.read();
            System.out.println(c);
        } while (c != 'q');
    }
}

讀寫(xiě)文件

FileInputStream

該流用于從文件讀取數(shù)據(jù)

InputStream f = new FileInputStream("C:/java/hello");

使用以下方法來(lái)讀取流或者進(jìn)行其他的流操作

  1. public void close() throws IOException{} 關(guān)閉此文件輸入流并釋放與此流有關(guān)的所有系統(tǒng)資源。拋出IOException異常。

  2. protected void finalize()throws IOException {} 這個(gè)方法清除與該文件的連接。確保在不再引用文件輸入流時(shí)調(diào)用其 close 方法。拋出IOException異常。

  3. public int read(int r)throws IOException{} 這個(gè)方法從 InputStream 對(duì)象讀取指定字節(jié)的數(shù)據(jù)。返回為整數(shù)值。返回下一字節(jié)數(shù)據(jù),如果已經(jīng)到結(jié)尾則返回-1。

  4. public int read(byte[] r) throws IOException{}
    這個(gè)方法從輸入流讀取r.length長(zhǎng)度的字節(jié)。返回讀取的字節(jié)數(shù)。如果是文件結(jié)尾則返回-1。

  5. public int available() throws IOException{} 返回下一次對(duì)此輸入流調(diào)用的方法可以不受阻塞地從此輸入流讀取的字節(jié)數(shù)。返回一個(gè)整數(shù)值。

FileOutputStream

創(chuàng)建一個(gè)文件并向文件中寫(xiě)數(shù)據(jù)。文件不存在,則創(chuàng)建。

OutputStream f = new FileOutputStream("C:/java/hello")
  1. public void close() throws IOException{}
    關(guān)閉此文件輸入流并釋放與此流有關(guān)的所有系統(tǒng)資源。拋出IOException異常。

  2. protected void finalize()throws IOException {}
    這個(gè)方法清除與該文件的連接。確保在不再引用文件輸入流時(shí)調(diào)用其 close 方法。拋出IOException異常。

  3. public void write(int w)throws IOException{} 這個(gè)方法把指定的字節(jié)寫(xiě)到輸出流中。

  4. public void write(byte[] w) 把指定數(shù)組中w.length長(zhǎng)度的字節(jié)寫(xiě)到OutputStream中。

文件操作代碼參考

Java目錄

創(chuàng)建目錄

mkdir()方法創(chuàng)建一個(gè)文件夾,成功則返回true,失敗則返回false。失敗表明File對(duì)象指定的路徑已經(jīng)存在,或者由于整個(gè)路徑還不存在,該文件夾不能被創(chuàng)建。

mkdirs()方法創(chuàng)建一個(gè)文件夾和它的所有父文件夾。

讀取目錄

一個(gè)目錄其實(shí)就是一個(gè) File 對(duì)象,它包含其他文件和文件夾。

如果創(chuàng)建一個(gè) File 對(duì)象并且它是一個(gè)目錄,那么調(diào)用 isDirectory() 方法會(huì)返回 true

使用 list() 方法來(lái)檢查一個(gè)文件夾中包含的內(nèi)容:

import java.io.File;
 
public class DirList {
    public static void main(String args[]) {
        String dirname = "/tmp";
        File f1 = new File(dirname);
        if (f1.isDirectory()) {
            System.out.println("目錄 " + dirname);
            String s[] = f1.list();
            for (int i = 0; i < s.length; i++) {
                File f = new File(dirname + "/" + s[i]);
                if (f.isDirectory()) {
                    System.out.println(s[i] + " 是一個(gè)目錄");
                } else {
                    System.out.println(s[i] + " 是一個(gè)文件");
                }
            }
        } else {
            System.out.println(dirname + " 不是一個(gè)目錄");
        }
    }
}

刪除目錄或文件

刪除文件可以使用 java.io.File.delete() 方法。

當(dāng)刪除某一目錄時(shí),必須保證該目錄下沒(méi)有其他文件才能正確刪除,否則將刪除失敗。

import java.io.File;
 
public class DeleteFileDemo {
    public static void main(String[] args) {
        // 這里修改為自己的測(cè)試目錄
        File folder = new File("/tmp/java/");
        deleteFolder(folder);
    }
 
    // 刪除文件及目錄
    public static void deleteFolder(File folder) {
        File[] files = folder.listFiles();
        if (files != null) {
            for (File f : files) {
                if (f.isDirectory()) {
                    deleteFolder(f);
                } else {
                    f.delete();
                }
            }
        }
        folder.delete();
    }
}

Java 異常處理

異常發(fā)生的原因
用戶(hù)輸入了非法數(shù)據(jù)。
要打開(kāi)的文件不存在。
網(wǎng)絡(luò)通信時(shí)連接中斷,或者JVM內(nèi)存溢出。

Java 的非檢查性異常
Java eight 解讀流(Stream)、文件(File)、IO和異常處理的使用方法,java,編程語(yǔ)言,java,開(kāi)發(fā)語(yǔ)言
檢查性異常類(lèi)

Java eight 解讀流(Stream)、文件(File)、IO和異常處理的使用方法,java,編程語(yǔ)言,java,開(kāi)發(fā)語(yǔ)言
異常方法

  1. public String getMessage() 返回關(guān)于發(fā)生的異常的詳細(xì)信息。這個(gè)消息在Throwable
    類(lèi)的構(gòu)造函數(shù)中初始化了。

  2. public Throwable getCause() 返回一個(gè) Throwable 對(duì)象代表異常原因。

  3. public String toString() 返回此 Throwable 的簡(jiǎn)短描述。

  4. public void printStackTrace() 將此 Throwable 及其回溯打印到標(biāo)準(zhǔn)錯(cuò)誤流。

  5. public StackTraceElement [] getStackTrace()
    返回一個(gè)包含堆棧層次的數(shù)組。下標(biāo)為0的元素代表?xiàng)m?,最后一個(gè)元素代表方法調(diào)用堆棧的棧底。

  6. public Throwable fillInStackTrace() 用當(dāng)前的調(diào)用棧層次填充Throwable
    對(duì)象棧層次,添加到棧層次任何先前信息中。

捕獲異常

使用 try 和 catch 關(guān)鍵字可以捕獲異常。try/catch 代碼塊放在異常可能發(fā)生的地方;
Catch語(yǔ)句包含要捕獲異常類(lèi)型的聲明。當(dāng)保護(hù)代碼塊中發(fā)生一個(gè)異常時(shí),try 后面的 catch 塊就會(huì)被檢查。

finally 關(guān)鍵字用來(lái)創(chuàng)建在 try 代碼塊后面執(zhí)行的代碼塊。無(wú)論是否發(fā)生異常,finally 代碼塊中的代碼總會(huì)被執(zhí)行。

try{
  // 程序代碼
}catch(異常類(lèi)型1 異常的變量名1){
  // 程序代碼
}catch(異常類(lèi)型2 異常的變量名2){
  // 程序代碼
}finally{
  // 程序代碼
}

throws/throw 關(guān)鍵字

throw 關(guān)鍵字用于在代碼中拋出異常;
throws 關(guān)鍵字用于在方法聲明中指定可能會(huì)拋出的異常類(lèi)型??梢月暶鲯伋龆鄠€(gè)異常;

public void readFile(String filePath) throws IOException,RemoteException,InsufficientFundsException {
  BufferedReader reader = new BufferedReader(new FileReader(filePath));
  String line = reader.readLine();
  while (line != null) {
    System.out.println(line);
    line = reader.readLine();
    if (line == 0) {
       throw new IllegalArgumentException("Number must be positive");
    }
  }
  reader.close();
}

try-with-resources(可查閱詳細(xì)內(nèi)容進(jìn)行了解)
JDK7 之后,Java 新增的 try-with-resource 語(yǔ)法糖來(lái)打開(kāi)資源,并且可以在語(yǔ)句執(zhí)行完畢后確保每個(gè)資源都被自動(dòng)關(guān)閉 。

聲明自定義異常

所有異常都必須是 Throwable 的子類(lèi)。
如果希望寫(xiě)一個(gè)檢查性異常類(lèi),則需要繼承 Exception 類(lèi)。
如果你想寫(xiě)一個(gè)運(yùn)行時(shí)異常類(lèi),那么需要繼承 RuntimeException 類(lèi)。

通用異常

JVM(Java虛擬機(jī)) 異常:由 JVM 拋出的異?;蝈e(cuò)誤。例如:NullPointerException類(lèi),ArrayIndexOutOfBoundsException 類(lèi),ClassCastException 類(lèi)。
程序級(jí)異常:由程序或者API程序拋出的異常。例如 IllegalArgumentException類(lèi),IllegalStateException 類(lèi)。

在這里歡迎大家的點(diǎn)贊、關(guān)注、評(píng)論,以此來(lái)促進(jìn)大家互相學(xué)習(xí)交流,同時(shí)可以讓新加入的小伙伴更快的了解新知識(shí)??!!

以上內(nèi)容如有侵權(quán),請(qǐng)聯(lián)系作者進(jìn)行刪除

≧???≦ 1分2分都是愛(ài),感謝已經(jīng)打賞的老板,和正在打賞的老板們 ≧???≦文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-681698.html

到了這里,關(guān)于Java eight 解讀流(Stream)、文件(File)、IO和異常處理的使用方法的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來(lái)自互聯(lián)網(wǎng)用戶(hù)投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場(chǎng)。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • 文件未找到異常 [java.io.FileNotFoundException

    文件未找到異常 [java.io.FileNotFoundException 【解決文件丟失問(wèn)題:深入了解Java.io.FileNotFoundException異常的原因和解決方案】 引言: 當(dāng)您在編寫(xiě)Java應(yīng)用程序時(shí),可能會(huì)遇到一個(gè)常見(jiàn)的異常,即文件未找到異常(java.io.FileNotFoundException)。這個(gè)異常表示您的程序無(wú)法找到所需的文件

    2024年02月09日
    瀏覽(24)
  • 使用hive查看orc文件 orcfiledump命令詳解 異常處理(Failed to read ORC file)

    使用hive查看orc文件 orcfiledump命令詳解 異常處理(Failed to read ORC file)

    列式存儲(chǔ)以orc和parquet文件居多,現(xiàn)階段hive數(shù)據(jù)存儲(chǔ)的主流格式是orc,然后結(jié)合presto(目前對(duì)orc的支持好于parquet)做一些即席查詢(xún)。hive數(shù)據(jù)文件是直接存儲(chǔ)在hdfs上,但是hadoop貌似沒(méi)有提供直接查看文本的命令,好在hive提供了支持。 1. 命令幫助: hive --service orcfiledump --help 2. 數(shù)

    2024年02月16日
    瀏覽(26)
  • Android 創(chuàng)建文件時(shí)出現(xiàn) java.io.IOException: Operation not permitted異常

    Android 創(chuàng)建文件時(shí)出現(xiàn) java.io.IOException: Operation not permitted異常

    一、android 6.0 ????????6.0之前是不需要?jiǎng)討B(tài)申請(qǐng)權(quán)限的,直接在 manifest.xml 中申請(qǐng)即可以正常使用。 二、安卓10,SDK=29 ????????安卓10開(kāi)始,安卓繼續(xù)加強(qiáng)了限制,如果需要讀寫(xiě)SD卡,還需要額外的進(jìn)行申請(qǐng)requestLegacyExternalStorage申明。 三、安卓11,SDK=30 ????????安卓

    2024年02月02日
    瀏覽(29)
  • 【Stream流】java中Stream流詳細(xì)使用方法

    【Stream流】java中Stream流詳細(xì)使用方法

    在Java中, Stream 是一種用于處理集合數(shù)據(jù)的流式操作API。它提供了一種簡(jiǎn)潔、靈活、高效的方式來(lái)對(duì)集合進(jìn)行各種操作,如過(guò)濾、映射、排序等。下面是一些 Stream 的常用功能和詳細(xì)的代碼示例: 創(chuàng)建流: 從集合創(chuàng)建流: stream() 方法可以從集合創(chuàng)建一個(gè)流。 從數(shù)組創(chuàng)建流:

    2024年02月07日
    瀏覽(26)
  • Failed to parse multipart servlet request; nested exception is java.io.IOException,文件上傳異常的問(wèn)題如何解決

    Failed to parse multipart servlet request; nested exception is java.io.IOException,文件上傳異常的問(wèn)題如何解決

    背景: 有時(shí)候我們上傳文件時(shí)會(huì)遇到這種報(bào)錯(cuò), \\\"Failed to parse multipart servlet request; nested exception is java.io.IOException: The temporary upload location [C:\\\\Users\\\\XXXX\\\\AppData\\\\Local\\\\Temp\\\\tomcat.2460390372185321891.8082\\\\work\\\\Tomcat\\\\localhost\\\\ROOT] is not valid\\\"。 導(dǎo)致上傳文件失敗。 原因: 這種問(wèn)題出現(xiàn)的原

    2024年02月03日
    瀏覽(18)
  • elasticsearch 安裝 IK 中文分詞器插件提示找不到文件的異常(Exception in thread “main“ java.nio.file.NoSuchFileException)

    elasticsearch 安裝 IK 中文分詞器插件提示找不到文件的異常(Exception in thread “main“ java.nio.file.NoSuchFileException)

    錯(cuò)誤截圖 在命令行窗口,執(zhí)行如下命令安裝 IK 中文分詞器 失敗。 錯(cuò)誤日志 1、自己到github下載對(duì)應(yīng)版本的ik中文分詞器 上面命令中兩個(gè)插件版本號(hào)應(yīng)該和 Elasticsearch 的版本保持一致,我現(xiàn)在用的是 7.14.1 版本。 首先版本和命令是對(duì)得上的。 命令行窗口通過(guò)命令下載失敗的話

    2024年04月11日
    瀏覽(30)
  • <JavaEE> 文件IO -- File類(lèi)和文件操作

    目錄 一、文件的概念 二、文件系統(tǒng) 三、文件類(lèi)型 四、使用 File 類(lèi)進(jìn)行文件操作 4.1 File 類(lèi)中的 pathSeparator 屬性 4.2?File 類(lèi)構(gòu)造方法 4.3?File 類(lèi)常用方法 什么是文件? 廣義上的“文件”是指抽象化的操作系統(tǒng)中的硬件設(shè)備和軟件資源,目的是對(duì)這些“文件”進(jìn)行同一的管理。

    2024年02月04日
    瀏覽(31)
  • Java Stream API的基本使用方法

    Java Stream API的基本使用方法

    Java各個(gè)版本所更新的主要內(nèi)容: 1.Java SE 8:引入了一些新特性,如lambda表達(dá)式、Stream API、格式化日期、國(guó)際化等。此外,還對(duì)并發(fā)編程進(jìn)行了改進(jìn),引入了線程安全的 Stream API 。 2.Java SE 9:新增了分布式架構(gòu)的支持,引入了CompletableFuture、ZK等新特性。此外,還對(duì)Jit編譯器進(jìn)

    2024年02月03日
    瀏覽(31)
  • Java File類(lèi)和IO流

    Java File類(lèi)和IO流

    目錄 1. File類(lèi) 1.1 File對(duì)象創(chuàng)建 1.2 File判斷和獲取方法 1.3 創(chuàng)建和刪除方法 1.4 遍歷文件夾 2. 字符集 2.1?ASCII字符集 2.2 GBK字符集 2.3 Unicode字符集 2.4 UTF-8 2.5 字符集小結(jié) 2.6 編碼和解碼 3. IO流(字節(jié)流) 3.1 IO流概述 3.2 FileInputStream 3.3 FileOutputStream? 3.4 FileReader 3.5 FileWriter 3.6 緩沖流

    2024年02月09日
    瀏覽(20)
  • 【Java 基礎(chǔ)】File & IO流

    【Java 基礎(chǔ)】File & IO流

    java.io.File類(lèi)是文件和目錄路徑名的抽象表示形式,主要用于文件和目錄的創(chuàng)建、查找和刪除等操作。 File:它是文件和目錄路徑名的抽象表示 文件和目錄可以通過(guò)File封裝成對(duì)象 File封裝的對(duì)象僅僅是一個(gè)路徑名。它可以是存在的,也可以是不存在的。 | 方法名 | 說(shuō)明 | | —

    2024年02月05日
    瀏覽(24)

覺(jué)得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包