国产av日韩一区二区三区精品,成人性爱视频在线观看,国产,欧美,日韩,一区,www.成色av久久成人,2222eeee成人天堂

Table of Contents
?I/O流原理及流的分類
I/O原理
I/O流的分類
文件(File)
概念
??常用操作(File類)
Home Java javaTutorial Java basics: I/O streams and File class file operation methods

Java basics: I/O streams and File class file operation methods

May 12, 2023 pm 04:37 PM
java file i/o

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

    I/O原理

    • I/O是Input和Output的縮寫,I/O技術(shù)是非常實(shí)用的技術(shù),用于處理數(shù)據(jù)傳輸(如:讀/寫文件,網(wǎng)絡(luò)通信)

    • Java程序中,對于數(shù)據(jù)的輸入/輸出操作是以流(stream)的方式進(jìn)行的

    • java.io包下提供了各種流(stream)類和接口,用以獲取不同種類的數(shù)據(jù),并通過方法輸入和輸出數(shù)據(jù)。

    • 文件流:文件在程序中是以流的形式操作的

    Java basics: I/O streams and File class file operation methods

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

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

    I/O流的分類

    • 按操作數(shù)據(jù)單位分為:字節(jié)流(二進(jìn)制文件)、字符流(文本文件)

    • 按數(shù)據(jù)的流向分為:輸入流、輸出流

    • 按流的角色分為:節(jié)點(diǎn)流、處理流

    抽象基類 字節(jié)流 字符流
    輸入流 InputStream Reader
    輸出流 OutputStream Writer

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

    Java basics: I/O streams and File class file operation methods

    文件(File)

    概念

    什么是文件?

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

    文件夾(目錄)

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

    ??常用操作(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();
        }
    }

    Java basics: I/O streams and File class file operation methods

    獲取文件的相關(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());
        }
    }

    Java basics: I/O streams and File class file operation methods

    文件比較

    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();//返回一個字符串?dāng)?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());
            }
        }
    }

    Java basics: I/O streams and File class file operation methods

    遍歷目錄

    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());
                    }
                }
            }
        }
    }

    The above is the detailed content of Java basics: I/O streams and File class file operation methods. For more information, please follow other related articles on the PHP Chinese website!

    Statement of this Website
    The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn

    Hot AI Tools

    Undress AI Tool

    Undress AI Tool

    Undress images for free

    Undresser.AI Undress

    Undresser.AI Undress

    AI-powered app for creating realistic nude photos

    AI Clothes Remover

    AI Clothes Remover

    Online AI tool for removing clothes from photos.

    Clothoff.io

    Clothoff.io

    AI clothes remover

    Video Face Swap

    Video Face Swap

    Swap faces in any video effortlessly with our completely free AI face swap tool!

    Hot Tools

    Notepad++7.3.1

    Notepad++7.3.1

    Easy-to-use and free code editor

    SublimeText3 Chinese version

    SublimeText3 Chinese version

    Chinese version, very easy to use

    Zend Studio 13.0.1

    Zend Studio 13.0.1

    Powerful PHP integrated development environment

    Dreamweaver CS6

    Dreamweaver CS6

    Visual web development tools

    SublimeText3 Mac version

    SublimeText3 Mac version

    God-level code editing software (SublimeText3)

    How to iterate over a Map in Java? How to iterate over a Map in Java? Jul 13, 2025 am 02:54 AM

    There are three common methods to traverse Map in Java: 1. Use entrySet to obtain keys and values at the same time, which is suitable for most scenarios; 2. Use keySet or values to traverse keys or values respectively; 3. Use Java8's forEach to simplify the code structure. entrySet returns a Set set containing all key-value pairs, and each loop gets the Map.Entry object, suitable for frequent access to keys and values; if only keys or values are required, you can call keySet() or values() respectively, or you can get the value through map.get(key) when traversing the keys; Java 8 can use forEach((key,value)-&gt

    Java Optional example Java Optional example Jul 12, 2025 am 02:55 AM

    Optional can clearly express intentions and reduce code noise for null judgments. 1. Optional.ofNullable is a common way to deal with null objects. For example, when taking values ??from maps, orElse can be used to provide default values, so that the logic is clearer and concise; 2. Use chain calls maps to achieve nested values ??to safely avoid NPE, and automatically terminate if any link is null and return the default value; 3. Filter can be used for conditional filtering, and subsequent operations will continue to be performed only if the conditions are met, otherwise it will jump directly to orElse, which is suitable for lightweight business judgment; 4. It is not recommended to overuse Optional, such as basic types or simple logic, which will increase complexity, and some scenarios will directly return to nu.

    How to fix java.io.NotSerializableException? How to fix java.io.NotSerializableException? Jul 12, 2025 am 03:07 AM

    The core workaround for encountering java.io.NotSerializableException is to ensure that all classes that need to be serialized implement the Serializable interface and check the serialization support of nested objects. 1. Add implementsSerializable to the main class; 2. Ensure that the corresponding classes of custom fields in the class also implement Serializable; 3. Use transient to mark fields that do not need to be serialized; 4. Check the non-serialized types in collections or nested objects; 5. Check which class does not implement the interface; 6. Consider replacement design for classes that cannot be modified, such as saving key data or using serializable intermediate structures; 7. Consider modifying

    Comparable vs Comparator in Java Comparable vs Comparator in Java Jul 13, 2025 am 02:31 AM

    In Java, Comparable is used to define default sorting rules internally, and Comparator is used to define multiple sorting logic externally. 1.Comparable is an interface implemented by the class itself. It defines the natural order by rewriting the compareTo() method. It is suitable for classes with fixed and most commonly used sorting methods, such as String or Integer. 2. Comparator is an externally defined functional interface, implemented through the compare() method, suitable for situations where multiple sorting methods are required for the same class, the class source code cannot be modified, or the sorting logic is often changed. The difference between the two is that Comparable can only define a sorting logic and needs to modify the class itself, while Compar

    How to parse JSON in Java? How to parse JSON in Java? Jul 11, 2025 am 02:18 AM

    There are three common ways to parse JSON in Java: use Jackson, Gson, or org.json. 1. Jackson is suitable for most projects, with good performance and comprehensive functions, and supports conversion and annotation mapping between objects and JSON strings; 2. Gson is more suitable for Android projects or lightweight needs, and is simple to use but slightly inferior in handling complex structures and high-performance scenarios; 3.org.json is suitable for simple tasks or small scripts, and is not recommended for large projects because of its lack of flexibility and type safety. The choice should be decided based on actual needs.

    Java method references explained Java method references explained Jul 12, 2025 am 02:59 AM

    Method reference is a way to simplify the writing of Lambda expressions in Java, making the code more concise. It is not a new syntax, but a shortcut to Lambda expressions introduced by Java 8, suitable for the context of functional interfaces. The core is to use existing methods directly as implementations of functional interfaces. For example, System.out::println is equivalent to s->System.out.println(s). There are four main forms of method reference: 1. Static method reference (ClassName::staticMethodName); 2. Instance method reference (binding to a specific object, instance::methodName); 3.

    How to handle character encoding issues in Java? How to handle character encoding issues in Java? Jul 13, 2025 am 02:46 AM

    To deal with character encoding problems in Java, the key is to clearly specify the encoding used at each step. 1. Always specify encoding when reading and writing text, use InputStreamReader and OutputStreamWriter and pass in an explicit character set to avoid relying on system default encoding. 2. Make sure both ends are consistent when processing strings on the network boundary, set the correct Content-Type header and explicitly specify the encoding with the library. 3. Use String.getBytes() and newString(byte[]) with caution, and always manually specify StandardCharsets.UTF_8 to avoid data corruption caused by platform differences. In short, by

    Outlook shortcut for new email Outlook shortcut for new email Jul 11, 2025 am 03:25 AM

    How to quickly create new emails in Outlook is as follows: 1. The desktop version uses the shortcut key Ctrl Shift M to directly pop up a new email window; 2. The web version can create new emails in one-click by creating a bookmark containing JavaScript (such as javascript:document.querySelector("divrole='button'").click()); 3. Use browser plug-ins (such as Vimium, CrxMouseGestures) to trigger the "New Mail" button; 4. Windows users can also select "New Mail" by right-clicking the Outlook icon of the taskbar

    See all articles