欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Java中文件的操作與輸入輸出流舉例詳解

 更新時(shí)間:2023年12月23日 09:31:37   作者:Lotto_o  
Java語(yǔ)言的輸入輸出功能是十分強(qiáng)大而靈活的,下面這篇文章主要給大家介紹了關(guān)于Java中文件的操作與輸入輸出流的相關(guān)資料,文中通過代碼介紹的非常詳細(xì),需要的朋友可以參考下

文件

1.狹義上的文件

硬盤上保存的數(shù)據(jù),都是“文件”來組織的,本質(zhì)上都是二進(jìn)制或是字符組織的數(shù)組,被打包成一個(gè)文件存在硬盤上。常見的文件有圖片,文本,可執(zhí)行文件,音頻,視頻…文件夾也是一種特殊的文件,也叫目錄通常所說的文件都是存儲(chǔ)在硬盤上面的,硬盤的特點(diǎn):1硬盤容量大,內(nèi)存容量小。2.硬盤讀寫速度慢,內(nèi)存讀寫速度快。3.硬盤造價(jià)低,內(nèi)存成本比較高。4.硬盤上的數(shù)據(jù)斷電不丟失,內(nèi)存中的數(shù)據(jù)斷電丟失。

2..廣義上的文件

操作系統(tǒng)的主要功能就是對(duì)計(jì)算機(jī)資源進(jìn)行統(tǒng)一管理與分配。對(duì)于Linux來講,所有的計(jì)算設(shè)備(網(wǎng)卡、鍵盤、打印機(jī)…)都會(huì)被描述(抽象)成文件。當(dāng)一個(gè)進(jìn)程啟動(dòng)后去申請(qǐng)計(jì)算機(jī)資源時(shí),系統(tǒng)會(huì)把他所有用到的資源以文件的形式分配給進(jìn)程,并加入到對(duì)應(yīng)的文件描述符表中。

3.樹形結(jié)構(gòu)和目錄通過 tree /F在命令行查看指定目錄的樹形結(jié)構(gòu)。

4.絕對(duì)路徑從根目錄開始一直到目標(biāo)程序的表示方式。

5.相對(duì)路徑從當(dāng)前目錄開始表示目標(biāo)程序路徑的方式。如果要通過相對(duì)路徑的方式訪問到目標(biāo)文件,那么就得先確認(rèn)自己當(dāng)前的工作目錄。對(duì)于ideal來說,起始工作目錄就是工程的根目錄。

??注意
平時(shí)使用的時(shí)候可以使用絕對(duì),工作和項(xiàng)目中盡量使用相對(duì)路徑。

Java操作文件

操作系統(tǒng)的一個(gè)重要功能就是對(duì)文件的管理,每個(gè)操作系統(tǒng)都有自己的一套系統(tǒng)API調(diào)用,Java作為一個(gè)跨平臺(tái)的語(yǔ)言,JVM針對(duì)不同的操作系統(tǒng)做了一層封裝,我們只需要使用JDK提供的關(guān)于文件操作的API就可以完成不同系統(tǒng)上的文件操作。

File類

用來操作文件的類,位于java.io包下。I:input,O: output。輸入輸出以內(nèi)存為參照物的。輸入指的是從外部輸入到內(nèi)存,輸出指的是把內(nèi)存的數(shù)據(jù)輸出外部(磁盤)。

屬性

修飾符及類型屬性說明
static StringpathSeparator依賴于系統(tǒng)的路徑分隔符,String 類型的表示
static charpathSeparator依賴于系統(tǒng)的路徑分隔符,char 類型的表示

構(gòu)造方法

簽名說明
File(File parent, String child)根據(jù)父目錄 + 孩子文件路徑,創(chuàng)建一個(gè)新的 File 實(shí)例
File(String pathname)根據(jù)文件路徑創(chuàng)建一個(gè)新的 File 實(shí)例,路徑可以是絕對(duì)路徑或者相對(duì)路徑
File(String parent, String child)根據(jù)父目錄 + 孩子文件路徑,創(chuàng)建一個(gè)新的 File 實(shí)例,父目錄用路徑表示
public class Demo01_File {
    public static void main(String[] args) {
        //通過指定文件路徑來創(chuàng)建一個(gè)File對(duì)象
        File file = new File("D:\\test\\hello.txt");
        System.out.println(file);
        File file1 = new File("D:/test/hello.txt");
        System.out.println(file1);
        //這只是java層面的一個(gè)對(duì)象,并不一定必須在系統(tǒng)中真實(shí)存在
        File file2 = new File("D:/test/test.txt");
        System.out.println(file2);
    }
}

注意斜杠與反斜杠的區(qū)別,反斜杠需要轉(zhuǎn)義。

常用方法

修飾符及返回值類型方法簽名說明
StringgetParent()返回 File 對(duì)象的父目錄文件路徑
StringgetName()返回 FIle 對(duì)象的純文件名稱
StringgetPath()返回 File 對(duì)象的文件路徑
StringgetAbsolutePath()返回 File 對(duì)象的絕對(duì)路徑
StringgetCanonicalPath()返回 File 對(duì)象的修飾過的絕對(duì)路徑
booleanexists()判斷 File 對(duì)象描述的文件是否真實(shí)存在
booleanisDirectory()判斷 File 對(duì)象代表的文件是否是一個(gè)目錄
booleanisFile()判斷 File 對(duì)象代表的文件是否是一個(gè)普通文件
booleancreateNewFile()根據(jù) File 對(duì)象,自動(dòng)創(chuàng)建一個(gè)空文件。成功創(chuàng)建后返回 true
booleandelete()根據(jù) File 對(duì)象,刪除該文件。成功刪除后返回 true
voiddeleteOnExit()根據(jù) File 對(duì)象,標(biāo)注文件將被刪除,刪除動(dòng)作會(huì)到JVM 運(yùn)行結(jié)束時(shí)才會(huì)進(jìn)行
String[]list()返回 File 對(duì)象代表的目錄下的所有文件名
File[]listFiles()返回 File 對(duì)象代表的目錄下的所有文件,以 File 對(duì)象表示
booleanmkdir()創(chuàng)建 File 對(duì)象代表的目錄
booleanmkdirs()創(chuàng)建 File 對(duì)象代表的目錄,如果必要,會(huì)創(chuàng)建中間目錄
booleanrenameTo(File dest)進(jìn)行文件改名,也可以視為我們平時(shí)的剪切、粘貼操作
booleancanRead()判斷用戶是否對(duì)文件有可讀權(quán)限
booleancanWrite()判斷用戶是否對(duì)文件有可寫權(quán)限
public class Demo02_FileUsae {
    public static void main(String[] args) throws IOException {
        //指定絕對(duì)路徑來創(chuàng)建一個(gè)File對(duì)象
        File file = new File("D:/test/test.txt");
        // 獲取父目錄
        System.out.println(file.getParent());
        // 獲取文件名
        System.out.println(file.getName());
        // 獲取路徑
        System.out.println(file.getPath());
        // 獲取絕對(duì)路徑
        System.out.println(file.getAbsolutePath());
        // 獲取一個(gè)標(biāo)準(zhǔn)路徑
        System.out.println(file.getCanonicalPath());
        // 是否存在
        System.out.println(file.exists());
        // 是不是一個(gè)目錄
        System.out.println(file.isDirectory());
        // 是不是一個(gè)文件
        System.out.println(file.isFile());
//
//        // 創(chuàng)建文件
//        boolean result1 = file.createNewFile();
//        if (result1) {
//            System.out.println("創(chuàng)建成功");
//        } else {
//            System.out.println("創(chuàng)建失敗");
//        }
//
//        // 刪除
//        boolean result2 = file.delete();
//        if (result2) {
//            System.out.println("刪除成功");
//        } else {
//            System.out.println("刪除失敗");
//        }

//        // 指定一個(gè)目錄的路徑
//        File file = new File("d:/test");
//        // 獲取目錄下的文件和子目錄
//        String[] list = file.list();
//        System.out.println(Arrays.toString(list));
//
//        // 獲取目錄下的文件對(duì)象數(shù)組
//        File[] files = file.listFiles();
//        System.out.println(Arrays.toString(files));

//        // 指定要?jiǎng)?chuàng)建的目錄
//        File file = new File("D:/test/java");
//        // 創(chuàng)建單個(gè)目錄
//        boolean result = file.mkdir();
//        if (result) {
//            System.out.println("創(chuàng)建成功");
//        } else {
//            System.out.println("創(chuàng)建失敗");
//        }
//        // 指定要?jiǎng)?chuàng)建的目錄
//        File file = new File("D:/test/java/a/b/c");
//        // 創(chuàng)建單個(gè)目錄
//        boolean result = file.mkdirs();
//        if (result) {
//            System.out.println("創(chuàng)建成功");
//        } else {
//            System.out.println("創(chuàng)建失敗");
//        }
//        // 定義源文件
//        File sourceFile = new File("D:/test/hello.txt");
//        // 定義目標(biāo)文件
//        File destFile = new File("D:/test/haha.txt");
//        // 重命名
//        boolean result = sourceFile.renameTo(destFile);
//        if (result) {
//            System.out.println("修改成功");
//        } else {
//            System.out.println("修改失敗");
//        }
//
//        File file = new File("D:/test/haha.txt");
//        // 是否可寫
//        System.out.println(file.canWrite());
//        // 是否可讀
//        System.out.println(file.canRead());



//        //指定相對(duì)路徑來創(chuàng)建一個(gè)File對(duì)象
//        File file = new File("./test.txt");
//        // 獲取父目錄
//        System.out.println(file.getParent());
//        // 獲取文件名
//        System.out.println(file.getName());
//        // 獲取路徑
//        System.out.println(file.getPath());
//        // 獲取絕對(duì)路徑
//        System.out.println(file.getAbsolutePath());
//        // 獲取一個(gè)標(biāo)準(zhǔn)路徑
//        System.out.println(file.getCanonicalPath());
//        // 是否存在
//        System.out.println(file.exists());
//        // 是不是一個(gè)目錄
//        System.out.println(file.isDirectory());
//        // 是不是一個(gè)文件
//        System.out.println(file.isFile());
    }
}

文件內(nèi)容的讀寫-數(shù)據(jù)流

字節(jié)流(處理二進(jìn)制文件)

InputStream和FileInputStream

??InputStream中的方法

修飾符及返回值類型方法說明
intread()讀取一個(gè)字節(jié)的數(shù)據(jù),返回 -1 代表已經(jīng)完全讀完了
intread(byte[] b)最多讀取 b.length 字節(jié)的數(shù)據(jù)到 b 中,返回實(shí)際讀到的數(shù)量;-1 代表以及讀完了
intread(byte[] b,int off, int len)最多讀取 len - off 字節(jié)的數(shù)據(jù)到 b 中,放在從 off 開始,返回實(shí)際讀到的數(shù)量;-1 代表以及讀完了
voidclose()關(guān)閉字節(jié)流

InputStream 只是一個(gè)抽象類,要使用還需要具體的實(shí)現(xiàn)類。我們現(xiàn)在只關(guān)心從文件中讀取,所以使用 FileInputStream類。

??FileInputStream類的構(gòu)造方法

方法說明
FileInputStream(File file)利用 File 構(gòu)造文件輸入流
FileInputStream(String name)利用文件路徑構(gòu)造文件輸入流

示例:讀取文件

public class Demo03_InputStream_Read01 {
    public static void main(String[] args) throws IOException {
        // 創(chuàng)建一個(gè)文件對(duì)象
        File file = new File("d:/test/haha.txt");
        // 創(chuàng)建一個(gè)輸入流
        InputStream inputStream = new FileInputStream(file);
        // 讀取文件內(nèi)容
        while (true) {
            int read = inputStream.read();
            // 是否讀完
            if (read == -1) {
                break;
            }
            System.out.println(read);
        }
        // 關(guān)閉
        inputStream.close();
    }
}

示例:用一個(gè)數(shù)組用來保存讀取到的數(shù)據(jù),遍歷數(shù)組即可讀取到數(shù)據(jù)。

public class Demo04_InputStream_Read02 {
    public static void main(String[] args) throws IOException {
        // 創(chuàng)建一個(gè)文件對(duì)象
        File file = new File("d:/test/haha.txt");
        // 創(chuàng)建一個(gè)輸入流
        InputStream inputStream = new FileInputStream(file);
        // 定義一個(gè)數(shù)組用來保存讀取到的數(shù)據(jù)
        byte[] bytes = new byte[1024];
        // 讀取文件內(nèi)容
        while (true) {
            // 讀到的數(shù)據(jù)會(huì)被填充到bytes數(shù)據(jù)中,返回讀取數(shù)據(jù)的長(zhǎng)度
            int len = inputStream.read(bytes);
            // 判斷是否讀完
            if (len == -1) {
                break;
            }
            // 打印讀到的內(nèi)容
            for (int i = 0; i < len; i++) {
                System.out.println(bytes[i]);
            }
        }
        // 關(guān)閉
        inputStream.close();
    }
}

在這個(gè)示例中,傳入read()方法的是一個(gè)空數(shù)組,讀文件時(shí),讀數(shù)組長(zhǎng)度個(gè)字節(jié),并返回讀取到的字節(jié)數(shù)供調(diào)用方做判斷。
打開一個(gè)文件相當(dāng)于把文件放入文件描述符表中,本質(zhì)上是一個(gè)數(shù)組。用完一定要關(guān)閉,如果不關(guān)閉,文件描述符表就會(huì)被填滿,導(dǎo)致以后可能無法再打開文件。

OutputStream和FileOutputStream

OutputStream和FileOutputStream分別作為字節(jié)流中輸出流的抽象類和實(shí)現(xiàn)類。

??OutputStream的方法

修飾符及返回值類型方法說明
viodwrite(int b)將數(shù)據(jù)寫入指定的文件
viodwrite(byte[] b)將 b 這個(gè)字符數(shù)組中的數(shù)據(jù)全部寫入 os 中
intwrite(byte[] b, int off,int len)將 b 這個(gè)字符數(shù)組中從 off 開始的數(shù)據(jù)寫入 os 中,一共寫 len 個(gè)
viodclose()關(guān)閉字節(jié)流
viodflush()重要:我們知道 I/O 的速度是很慢的,所以,大多的 OutputStream 為了減少設(shè)備操作的次數(shù),在寫數(shù)據(jù)的時(shí)候都會(huì)將數(shù)據(jù)先暫時(shí)寫入內(nèi)存的一個(gè)指定區(qū)域里,直到該區(qū)域滿了或者其他指定條件時(shí)才真正將數(shù)據(jù)寫入設(shè)備中,這個(gè)區(qū)域一般稱為緩沖區(qū)。但造成一個(gè)結(jié)果,就是我們寫的數(shù)據(jù),很可能會(huì)遺留一部分在緩沖區(qū)中。需要在最后或者合適的位置,調(diào)用 flush(刷新)操作,將數(shù)據(jù)刷到設(shè)備中。
public class Demo05_OutputStream {
    public static void main(String[] args) throws IOException {
        // 先創(chuàng)建一個(gè)File對(duì)象
        File file = new File("d:/test/haha.txt");
        // 根據(jù)File對(duì)象創(chuàng)建一個(gè)輸出流
        FileOutputStream outputStream = new FileOutputStream(file);
        // 向文件中寫入內(nèi)容
        outputStream.write(100);
        outputStream.write(101);
        outputStream.write(102);
        // 刷新緩沖區(qū)
        outputStream.flush();
        // 關(guān)閉流
        outputStream.close();
    }
}

調(diào)用write()方法,就表示通過輸出流把內(nèi)容寫到指定的文件中。
緩沖區(qū)本身是內(nèi)存中的一片區(qū)域,寫的文件內(nèi)容一般是先寫到緩沖區(qū)中,緩沖區(qū)的內(nèi)容什么時(shí)候?qū)懙轿募惺怯刹僮飨到y(tǒng)決定的。如果緩沖區(qū)的內(nèi)容還沒寫滿就要強(qiáng)制寫入文件時(shí),可以使用flush()方法。
在完成寫操作之后,建議強(qiáng)制調(diào)用flush()方法刷新緩沖區(qū),確保文件內(nèi)容被立即寫入。
用輸出流的方式去寫文件內(nèi)容,會(huì)把之前的內(nèi)容全部覆蓋掉。

字符流(處理文本文件)

Reader和FileReader

Reader和FileReader分別是字符流中輸入流的抽象類和實(shí)現(xiàn)類。

public class Demo06_FileReader {
    public static void main(String[] args) throws IOException {
        // 創(chuàng)建一個(gè)File對(duì)象
        File file = new File("d:/test/haha.txt");
        // 根據(jù)File對(duì)象創(chuàng)建一個(gè)Reader(面向字符的輸入流)
        FileReader reader = new FileReader(file);
        // 循環(huán)讀取
        while (true) {
            // 一次讀一個(gè)字符
            int read = reader.read();
            if (read == -1) {
                break;
            }
            // 打印
            System.out.println((char) read);
        }
        // 關(guān)閉流
        reader.close();
    }
}

read()方法每次只讀一個(gè)字符。

Writer和FileWriter

Writer和FileWriter分別是字符流中輸出流的抽象類和實(shí)現(xiàn)類。

public class Demo07_FileWriter {
    public static void main(String[] args) throws IOException {
        // 創(chuàng)建一個(gè)File對(duì)象
        File file = new File("d:/test/haha.txt");
        // 根據(jù)文件對(duì)象創(chuàng)建一個(gè)字符輸出流
        FileWriter writer = new FileWriter(file);
        // 寫入內(nèi)容
        writer.write("你好世界\n");
        writer.write("hello world");
        // 強(qiáng)制刷新緩沖區(qū)
        writer.flush();
        // 關(guān)閉流
        writer.close();

    }
}

write()方法每次寫入一個(gè)字符串,寫入時(shí)不會(huì)自動(dòng)換行,需要換行時(shí)要手動(dòng)添加換行符。

其他方法

Scanner(通過輸入流讀)

public class Demo08_Scanner {
    public static void main(String[] args) throws IOException {
        // 創(chuàng)建一個(gè)輸入流
        FileInputStream inputStream = new FileInputStream("d:/test/hello.txt");
        // 根據(jù)創(chuàng)建輸入流創(chuàng)建Scanner對(duì)象
        Scanner scanner = new Scanner(inputStream, "UTF-8");
        // 循環(huán)讀取內(nèi)容
        while (scanner.hasNextLine()) {
            String next = scanner.nextLine();
            System.out.println(next);
        }
        scanner.close();
        inputStream.close();
    }
}

讀數(shù)據(jù)時(shí),調(diào)用nextLine()方法讀取一行。

PrintWriter(通過輸出流寫)

public class Demo09_PrintWiter {
    public static void main(String[] args) throws FileNotFoundException {
        // 創(chuàng)建一個(gè)輸出流
        FileOutputStream outputStream = new FileOutputStream("d:/test/hello.txt");
        // 根據(jù)輸出流,創(chuàng)建一個(gè)PrintWriter
        PrintWriter printWriter = new PrintWriter(outputStream);
        // 寫入文件
        printWriter.println("你好世界?。。?);
        printWriter.println("hello world.");
        printWriter.println("我是用PrintWriter寫入的內(nèi)容");
        // 強(qiáng)制刷新緩沖區(qū)
        printWriter.flush();
        // 關(guān)閉流
        printWriter.close();
    }
}

寫入字符串時(shí),調(diào)用 println()方法會(huì)自動(dòng)換行。

練習(xí)

1.掃描指定目錄,并找到名稱中包含指定字符的所有普通文件(不包含目錄),并且后續(xù)詢問用戶是否要?jiǎng)h除該文件。

1.用戶輸入一個(gè)路徑;
2.檢查路徑是否有效;
3.用戶輸入目標(biāo)字符;
4.獲取路徑下的文件和目錄;
5.如果是目錄,遞歸;
6.如果是文件檢查文件名是否包含要用戶輸入的字符。

public class Ex01 {
    public static void main(String[] args) throws IOException {
        // 1. 接收用戶輸入的掃描路徑
        System.out.println("請(qǐng)輸入要掃描的路徑(絕對(duì)路徑):");
        Scanner scanner = new Scanner(System.in);
        String rootPath = scanner.next();
        // 2. 判斷路徑是否有效
        File root = new File(rootPath);
        // 2.1 路徑是否存在
        if (!root.exists()) {
            System.out.println("路徑不存在");
            return;
        }
        // 2.2 判斷File是不是一個(gè)目錄
        if (!root.isDirectory()) {
            System.out.println("指定的路徑不是一個(gè)有效目錄");
            return;
        }
        // 3. 接收關(guān)鍵字
        System.out.println("請(qǐng)輸入關(guān)鍵字");
        String key = scanner.next();
        if (key == null || "".equals(key)) {
            System.out.println("關(guān)鍵字不能為為");
            return;
        }
        // 4. 掃描目錄下的所有文件
        scan(root, key);
    }

    private static void scan(File root, String key) throws IOException {
        // 1. 先獲取root下的所有文件,包括目錄
        File[] files = root.listFiles();
        // 遞歸的終止條件
        if (files == null || files.length == 0) {
            return;
        }
        // 遍歷數(shù)組中的每個(gè)文件
        for (int i = 0; i < files.length; i++) {
            // 取出每一個(gè)文件
            File tempFile = files[i];
            // 判斷是文件還是目錄
            if (tempFile.isFile()) {
                // 如果是文件,判斷文件名中是否包含關(guān)鍵字
                String fileName = tempFile.getName();
                // 如果在文件名中找到關(guān)鍵字
                if (fileName.contains(key)) {
                    System.out.println("找到文件:" + tempFile.getCanonicalPath() + ", 是否刪除(Y/N)");
                    // 接收用戶的輸入,根據(jù)輸入判斷是否刪除
                    Scanner scanner = new Scanner(System.in);
                    String order = scanner.next();
                    // 刪除操作
                    if (order.equalsIgnoreCase("y")) {
                        tempFile.delete();
                        System.out.println(tempFile.getCanonicalPath() + " 刪除成功.");
                    }
                }
            } else {
                // 如果是目錄則遞歸
                scan(tempFile, key);
            }
        }
    }
}

2.對(duì)普通文件進(jìn)行復(fù)制

1.用戶輸入源文件的路徑;
2.檢查源文件是否存在,并且是一個(gè)文件;
3.用戶輸入目標(biāo)文件的路徑;
4.檢查目標(biāo)文件是否存在,并校驗(yàn)?zāi)夸浕蛭募?br />5.完成復(fù)制。

public class Ex02 {
    public static void main(String[] args) {
        // 1 . 接收用戶輸入的源文件路徑
        System.out.println("請(qǐng)輸入源文件路徑(絕對(duì)路徑):");
        Scanner scanner = new Scanner(System.in);
        String sourcePath = scanner.next();
        // 2. 判斷源文件路徑是否有效
        File sourceFile = new File(sourcePath);
        // 2.1 文件是否存在
        if (!sourceFile.exists()) {
            System.out.println("源文件不存在");
            return;
        }
        // 2.2 判斷是不是一個(gè)文件
        if (!sourceFile.isFile()) {
            System.out.println("源文件不是一個(gè)有效的文件");
            return;
        }
        // 3. 接收用戶輸入的目標(biāo)文件路徑
        System.out.println("請(qǐng)輸入目標(biāo)文件路徑(絕對(duì)路徑)");
        String destPath = scanner.next();
        File destFile = new File(destPath);
        // 3.1 判斷目標(biāo)文件是否存在
        if (destFile.exists()) {
            System.out.println("目標(biāo)文件已存在");
            return;
        }
        // 3.2 判斷目標(biāo)文件的父目錄是否存在
        if (!destFile.getParentFile().exists()) {
            System.out.println("目標(biāo)文件的父目錄不存在");
            return;
        }
        // 循環(huán)讀取源文件的內(nèi)容并寫到目標(biāo)文件中
        try (FileInputStream inputStream = new FileInputStream(sourceFile);
             FileOutputStream outputStream = new FileOutputStream(destFile)) {
            // 定義一個(gè)byte數(shù)組用來做為輸出型參數(shù),保存每次讀到的文件內(nèi)容
            byte [] bytes = new byte[1024];
            // 循環(huán)讀取內(nèi)容
            while (true) {
                int len = inputStream.read(bytes);
                if (len == -1) {
                    break;
                }
                // 寫義目標(biāo)文件
                outputStream.write(bytes);
                // 強(qiáng)制刷新緩沖區(qū)
                outputStream.flush();
            }
            System.out.println("復(fù)制成功");

        } catch (FileNotFoundException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}

由于InputStream和OutputStream實(shí)現(xiàn)了Closeable類,所以可以在try()中完成聲明,當(dāng)代碼退出try的代碼塊時(shí),會(huì)自動(dòng)調(diào)用close()方法。

繼續(xù)加油~

總結(jié)

到此這篇關(guān)于Java中文件的操作與輸入輸出流的文章就介紹到這了,更多相關(guān)Java文件操作與輸入輸出流內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Java中Hashtable類與HashMap類的區(qū)別詳解

    Java中Hashtable類與HashMap類的區(qū)別詳解

    Hashtable的應(yīng)用非常廣泛,HashMap是新框架中用來代替Hashtable的類,也就是說建議使用HashMap,不要使用Hashtable。可能你覺得Hashtable很好用,為什么不用呢?這里簡(jiǎn)單分析他們的區(qū)別。
    2016-01-01
  • 解決RestTemplate 請(qǐng)求url中包含百分號(hào) 會(huì)被轉(zhuǎn)義成25的問題

    解決RestTemplate 請(qǐng)求url中包含百分號(hào) 會(huì)被轉(zhuǎn)義成25的問題

    這篇文章主要介紹了解決RestTemplate 請(qǐng)求url中包含百分號(hào) 會(huì)被轉(zhuǎn)義成25的問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。
    2021-10-10
  • SpringBoot項(xiàng)目集成FTP的方法步驟

    SpringBoot項(xiàng)目集成FTP的方法步驟

    本文主要介紹了SpringBoot項(xiàng)目集成FTP的方法步驟,文中通過示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2021-10-10
  • java9在interface中定義私有方法詳解

    java9在interface中定義私有方法詳解

    在本篇內(nèi)容里小編給大家整理的是一篇關(guān)于java9在interface中定義私有方法,有興趣的朋友們可以學(xué)習(xí)下。
    2020-10-10
  • 使用maven如何將項(xiàng)目中的test代碼打包進(jìn)jar中

    使用maven如何將項(xiàng)目中的test代碼打包進(jìn)jar中

    這篇文章主要介紹了使用maven如何將項(xiàng)目中的test代碼打包進(jìn)jar中,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-03-03
  • Java Lambda表達(dá)式詳解和實(shí)例

    Java Lambda表達(dá)式詳解和實(shí)例

    這篇文章主要介紹了Java Lambda表達(dá)式詳細(xì)介紹,從簡(jiǎn)單的到復(fù)雜的實(shí)例講解,需要的朋友可以參考下
    2014-05-05
  • springcloud gateway設(shè)置context-path的操作

    springcloud gateway設(shè)置context-path的操作

    這篇文章主要介紹了springcloud gateway設(shè)置context-path的操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2021-07-07
  • Java中的FileWriter用法詳解與實(shí)戰(zhàn)記錄

    Java中的FileWriter用法詳解與實(shí)戰(zhàn)記錄

    這篇文章主要給大家介紹了關(guān)于Java中FileWriter用法的相關(guān)資料,包括寫入字符數(shù)據(jù)到文件、字符數(shù)組和部分字符寫入、配合BufferedWriter使用等方法,同時(shí)也解釋了其與OutputStreamWriter,BufferedWriter的異同特性,適合簡(jiǎn)單的文件寫入操作,需要的朋友可以參考下
    2024-10-10
  • 通過實(shí)例了解Spring中@Profile的作用

    通過實(shí)例了解Spring中@Profile的作用

    這篇文章主要介紹了通過實(shí)例了解Spring中@Profile的作用,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2019-11-11
  • spring本地事務(wù)失效的原因分析

    spring本地事務(wù)失效的原因分析

    這篇文章給大家介紹了spring本地事務(wù)失效的情況原因分析,給大家羅列了五種原因分析,通過代碼示例介紹的非常詳細(xì),具有一定的參考價(jià)值,需要的朋友可以參考下
    2023-10-10

最新評(píng)論