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

Java基礎(chǔ)知識之I/O流和File類文件操作

 更新時間:2022年04月28日 11:45:41   作者:Tangable22  
眾所周知java語言提供給程序員非常多的包供編程時使用,方便又快捷,下面這篇文章主要給大家介紹了關(guān)于Java基礎(chǔ)知識之I/O流和File類文件操作的相關(guān)資料,文中通過實例代碼介紹的非常詳細,需要的朋友可以參考下

?I/O流原理及流的分類

??I/O原理

  • I/O是Input和Output的縮寫,I/O技術(shù)是非常實用的技術(shù),用于處理數(shù)據(jù)傳輸(如:讀/寫文件,網(wǎng)絡(luò)通信)
  • Java程序中,對于數(shù)據(jù)的輸入/輸出操作是以流(stream)的方式進行的
  • java.io包下提供了各種流(stream)類和接口,用以獲取不同種類的數(shù)據(jù),并通過方法輸入和輸出數(shù)據(jù)。
  • 文件流:文件在程序中是以流的形式操作的

輸入流:數(shù)據(jù)從數(shù)據(jù)源(文件)到程序(內(nèi)存)的路徑

輸出流:數(shù)據(jù)從程序(內(nèi)存)到數(shù)據(jù)源(文件)的路徑

??I/O流的分類

  • 按操作數(shù)據(jù)單位分為:字節(jié)流(二進制文件)、字符流(文本文件)
  • 按數(shù)據(jù)的流向分為:輸入流、輸出流
  • 按流的角色分為:節(jié)點流、處理流
抽象基類字節(jié)流字符流
輸入流InputStreamReader
輸出流OutputStreamWriter

??I/O的體系結(jié)構(gòu)

???文件(File)

??概念

什么是文件?

文件,對于我們并陌生,文件就是保存數(shù)據(jù)的地方,比如word文檔、txt文本、excel文件、圖片、視頻…等都是文件,操作系統(tǒng)中以文件為單位管理磁盤中的數(shù)據(jù)。從數(shù)據(jù)存儲角度來說,所有文件本質(zhì)上都是一樣的,都是由一個個字節(jié)組成的歸根到底都是0-1比特串。

文件夾(目錄)

多個文件如果不分類放在一起,用戶使用起來就非常不方便,因此,又引入了樹形目錄(也叫文件夾)的機制,可以把文件放在不同的文件夾中,文件夾中還可以嵌套文件夾,這就便于用戶對文件進行管理和使用。

??常用操作(File類)

創(chuàng)建文件對象相關(guān)構(gòu)造器和方法

new File(String pathname);//根據(jù)路徑構(gòu)建一個File對象
new File(File parent,String child);//根據(jù)父目錄文件+子路徑構(gòu)建
new File(String parent,String child);//根據(jù)父目錄路徑+子路徑構(gòu)建
createNewFile();//創(chuàng)建新文件

在E盤下,用以上方式創(chuàng)建文件test01.txt\test02.txt\test03.txt

import java.io.File;
import java.io.IOException;

public class FileCreate {
    public static void main(String[] args) throws IOException {
        //方式1
        String pathname = "e:\\test01.txt";
        File file1 = new File(pathname);
        file1.createNewFile();
        //方式2
        File parentfile = new File("e:\\");
        String child2 = "test02.txt";
        File file2 = new File(parentfile, child2);
        file2.createNewFile();
        //方式3
        String parent = "e:\\";
        String child3 = "test03.txt";
        File file3 = new File(parent, child3);
        file3.createNewFile();
    }
}

獲取文件的相關(guān)信息

get.getName();//獲取文件名字

canRead();//文件是否可讀

canWrite();//文件是否可寫

getAbsoultePath();//獲取文件的絕對路徑

getPath();//相對路徑

getParent();//獲取文件父級目錄

lenth();//文件大?。ㄗ止?jié))

exists();//判斷文件是否存在

isFile();//判斷是不是一個文件

isDirectory();//判斷是不是一個目錄

import java.io.File;
public class FileInfomation {
    public static void main(String[] args) {
        //創(chuàng)建文件對象
        File file = new File("e:\\test01.txt");
        System.out.println("文件名字:" + file.getName());
        System.out.println("文件是否可讀:" + file.canRead());
        System.out.println("文件是否可寫:" + file.canWrite());
        System.out.println("文件絕對路徑:" + file.getAbsolutePath());
        System.out.println("文件大小(字節(jié)):" + file.length());
        System.out.println("文件是否存在:" + file.exists());
        System.out.println("是不是一個文件:" + file.isFile());
        System.out.println("是不是一個目錄:" + file.isDirectory());
    }
}

文件比較

File f1=new File("D:\\test1.txt");
File f2=new File("D:\\test2.txt");
f1==f2;//比較的是兩個對象的地址
f1.equals(f2);//比較兩個對象對應(yīng)的文件的路徑

目錄操作和文件刪除

mkdir();//創(chuàng)建單層目錄

mkdirs();//創(chuàng)建多層目錄

delete();//刪除目錄(這層目錄必須為空,沒有內(nèi)容)

查看文件目錄

list();//返回一個字符串數(shù)組,命名由此抽象路徑名表示的目錄中的文件和目錄。

listFiles();//返回一個抽象路徑名數(shù)組,表示由該抽象路徑名表示的目錄中的文件。

案列:遍歷一個目錄下的所有文件打印輸出

public class PrintFile {
    public static void main(String[] args) {
        //創(chuàng)建文件對象
        File file = new File("e:\\Test");
        String[] list = file.list();//文件夾下目錄/文件對應(yīng)的名字的數(shù)組
        for (String s : list) {
            System.out.println(s);
        }
        File[] files = file.listFiles();
        for (File f : files) {
            System.out.println(f.getName() + "," + f.getAbsolutePath());
        }
    }
}

??遍歷目錄

1.給定一個文件對象file
2.listFiles()獲取該文件下的所有文件對象數(shù)組
3.遍歷File對象數(shù)組,如果是目錄,遞歸調(diào)用該方法獲取該目錄下的所有文件對象;如果是文件,打印輸出路徑+姓名

import java.io.File;

public class PrintFile {
    public static void main(String[] args) {
        File file = new File("E:\\Code");
        getAllFile(file);
    }

    public static void getAllFile(File file) {
        //獲取給定目錄下的所有File對象數(shù)組
        File[] files = file.listFiles();
        //開始遍歷
        if (files != null) {
            for (File f : files) {
                if (f.isDirectory()) {//判斷是否為目錄,如果是,調(diào)用遞歸
                    getAllFile(f);
                } else {//不是,就打印路徑+文件名
                    System.out.println(f.getAbsoluteFile() + "下的:" + f.getName());
                }
            }
        }
    }
}

總結(jié)

到此這篇關(guān)于Java基礎(chǔ)知識之I/O流和File類文件操作的文章就介紹到這了,更多相關(guān)Java I/O流和File類操作內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Mybatis + js 實現(xiàn)下拉列表二級聯(lián)動效果

    Mybatis + js 實現(xiàn)下拉列表二級聯(lián)動效果

    這篇文章給大家介紹基于Mybatis + js 實現(xiàn)下拉列表二級聯(lián)動效果,實現(xiàn)代碼分為前端界面實現(xiàn)和后端處理方法,代碼簡單易懂,對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友參考下吧
    2021-06-06
  • Java 讀取網(wǎng)絡(luò)圖片存儲到本地并生成縮略圖

    Java 讀取網(wǎng)絡(luò)圖片存儲到本地并生成縮略圖

    用Java做開發(fā)經(jīng)常需要處理圖片。本文就來看一下如何保存圖片到本地并生成縮略圖
    2021-05-05
  • 淺析Java編程中類和對象的定義

    淺析Java編程中類和對象的定義

    下面小編就為大家?guī)硪黄獪\析Java編程中類和對象的定義。小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧,祝大家游戲愉快哦
    2016-05-05
  • Java生成表格圖片的實例代碼

    Java生成表格圖片的實例代碼

    這篇文章主要介紹了Java生成表格圖片的實例代碼,幫助大家更好的理解和學(xué)習(xí)Java,感興趣的朋友可以了解下
    2020-09-09
  • java實現(xiàn)簡單圖片上傳下載功能

    java實現(xiàn)簡單圖片上傳下載功能

    這篇文章主要為大家詳細介紹了java實現(xiàn)簡單圖片上傳下載功能,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2018-10-10
  • 通過idea創(chuàng)建Spring Boot項目并配置啟動過程圖解

    通過idea創(chuàng)建Spring Boot項目并配置啟動過程圖解

    這篇文章主要介紹了通過idea創(chuàng)建Spring Boot項目并配置啟動過程圖解,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2019-11-11
  • SpringBoot內(nèi)置數(shù)據(jù)源的持久化與解決方案

    SpringBoot內(nèi)置數(shù)據(jù)源的持久化與解決方案

    數(shù)據(jù)源的配置 我們先基于SpringBoot默認的HikariDataSource數(shù)據(jù)源,導(dǎo)入JDBC場景,看看SpringBoot幫我們自動配置了什么,下面我們來了解SpringBoot內(nèi)置數(shù)據(jù)源持久化
    2022-07-07
  • Java實現(xiàn)List去重的方法詳解

    Java實現(xiàn)List去重的方法詳解

    本文用示例介紹Java的List(ArrayList、LinkedList等)的去重的方法。List去重的常用方法一般是:JDK8的stream的distinct、轉(zhuǎn)為HashSet、轉(zhuǎn)為TreeSet等,感興趣的可以了解一下
    2022-05-05
  • MyBatis-Plus如何關(guān)閉SQL日志打印詳解

    MyBatis-Plus如何關(guān)閉SQL日志打印詳解

    在使用mybatisplus進行開發(fā)時,日志是一個非常有用的工具,它可以幫助我們更好地了解和調(diào)試我們的代碼,這篇文章主要給大家介紹了關(guān)于MyBatis-Plus如何關(guān)閉SQL日志打印的相關(guān)資料,需要的朋友可以參考下
    2024-03-03
  • Apache Camel的Java編程入門指南

    Apache Camel的Java編程入門指南

    這篇文章主要介紹了Apache Camel的Java編程入門指南,Apache Camel規(guī)則路由引擎中提供了很多Java可擴展接口,需要的朋友可以參考下
    2015-07-07

最新評論