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

Inhaltsverzeichnis
?I/O流原理及流的分類
I/O原理
I/O流的分類
文件(File)
概念
??常用操作(File類)
Heim Java javaLernprogramm Java-Grundlagen: E/A-Streams und Dateioperationsmethoden der Dateiklasse

Java-Grundlagen: E/A-Streams und Dateioperationsmethoden der Dateiklasse

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程序中,對(duì)于數(shù)據(jù)的輸入/輸出操作是以流(stream)的方式進(jìn)行的

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

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

    Java-Grundlagen: E/A-Streams und Dateioperationsmethoden der Dateiklasse

    輸入流:數(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-Grundlagen: E/A-Streams und Dateioperationsmethoden der Dateiklasse

    文件(File)

    概念

    什么是文件?

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

    文件夾(目錄)

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

    ??常用操作(File類)

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

    new File(String pathname);//根據(jù)路徑構(gòu)建一個(gè)File對(duì)象
    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-Grundlagen: E/A-Streams und Dateioperationsmethoden der Dateiklasse

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

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

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

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

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

    getPath();//相對(duì)路徑

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

    lenth();//文件大小(字節(jié))

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

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

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

    import java.io.File;
    public class FileInfomation {
        public static void main(String[] args) {
            //創(chuàng)建文件對(duì)象
            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("文件絕對(duì)路徑:" + file.getAbsolutePath());
            System.out.println("文件大?。ㄗ止?jié)):" + file.length());
            System.out.println("文件是否存在:" + file.exists());
            System.out.println("是不是一個(gè)文件:" + file.isFile());
            System.out.println("是不是一個(gè)目錄:" + file.isDirectory());
        }
    }

    Java-Grundlagen: E/A-Streams und Dateioperationsmethoden der Dateiklasse

    文件比較

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

    目錄操作和文件刪除

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

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

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

    查看文件目錄

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

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

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

    public class PrintFile {
        public static void main(String[] args) {
            //創(chuàng)建文件對(duì)象
            File file = new File("e:\\Test");
            String[] list = file.list();//文件夾下目錄/文件對(duì)應(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-Grundlagen: E/A-Streams und Dateioperationsmethoden der Dateiklasse

    遍歷目錄

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

    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對(duì)象數(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());
                    }
                }
            }
        }
    }

    Das obige ist der detaillierte Inhalt vonJava-Grundlagen: E/A-Streams und Dateioperationsmethoden der Dateiklasse. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

    Erkl?rung dieser Website
    Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn

    Hei?e KI -Werkzeuge

    Undress AI Tool

    Undress AI Tool

    Ausziehbilder kostenlos

    Undresser.AI Undress

    Undresser.AI Undress

    KI-gestützte App zum Erstellen realistischer Aktfotos

    AI Clothes Remover

    AI Clothes Remover

    Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

    Clothoff.io

    Clothoff.io

    KI-Kleiderentferner

    Video Face Swap

    Video Face Swap

    Tauschen Sie Gesichter in jedem Video mühelos mit unserem v?llig kostenlosen KI-Gesichtstausch-Tool aus!

    Hei?e Werkzeuge

    Notepad++7.3.1

    Notepad++7.3.1

    Einfach zu bedienender und kostenloser Code-Editor

    SublimeText3 chinesische Version

    SublimeText3 chinesische Version

    Chinesische Version, sehr einfach zu bedienen

    Senden Sie Studio 13.0.1

    Senden Sie Studio 13.0.1

    Leistungsstarke integrierte PHP-Entwicklungsumgebung

    Dreamweaver CS6

    Dreamweaver CS6

    Visuelle Webentwicklungstools

    SublimeText3 Mac-Version

    SublimeText3 Mac-Version

    Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

    Hei?e Themen

    PHP-Tutorial
    1502
    276
    Wie gehe ich mit Transaktionen in Java mit JDBC um? Wie gehe ich mit Transaktionen in Java mit JDBC um? Aug 02, 2025 pm 12:29 PM

    Um JDBC -Transaktionen korrekt zu verarbeiten, müssen Sie zun?chst den automatischen Komiti -Modus ausschalten und dann mehrere Vorg?nge ausführen und schlie?lich entsprechend den Ergebnissen festlegen oder rollen. 1. Nennen Sie Conn.SetAutoCommit (False), um die Transaktion zu starten. 2. Führen Sie mehrere SQL -Operationen aus, z. B. einfügen und aktualisieren. 3. Rufen Sie Conn.Commit () an, wenn alle Vorg?nge erfolgreich sind, und rufen Sie Conn.Rollback () auf, wenn eine Ausnahme auftritt, um die Datenkonsistenz zu gew?hrleisten. Gleichzeitig sollten Try-with-Ressourcen verwendet werden, um Ressourcen zu verwalten, Ausnahmen ordnungsgem?? zu behandeln und Verbindungen zu schlie?en, um Verbindungsleckage zu vermeiden. Darüber hinaus wird empfohlen, Verbindungspools zu verwenden und Save -Punkte zu setzen, um teilweise Rollback zu erreichen und Transaktionen so kurz wie m?glich zu halten, um die Leistung zu verbessern.

    Wie arbeite man mit Kalender in Java? Wie arbeite man mit Kalender in Java? Aug 02, 2025 am 02:38 AM

    Verwenden Sie Klassen im Java.Time -Paket, um das alte Datum und die Kalenderklassen zu ersetzen. 2. Erhalten Sie das aktuelle Datum und die aktuelle Uhrzeit durch LocalDate, LocalDatetime und Local Time; 3. Erstellen Sie ein bestimmtes Datum und eine bestimmte Uhrzeit mit der von () Methode; 4.. Verwenden Sie die Plus/Minus -Methode, um die Zeit nicht zu erh?hen und zu verkürzen. 5. Verwenden Sie ZonedDatetime und zoneId, um die Zeitzone zu verarbeiten. 6. Format und analysieren Sie Datumszeichenfolgen über DateTimeFormatter; 7. Verwenden Sie sofortige, um bei Bedarf mit den alten Datumstypen kompatibel zu sein. Die Verarbeitung der Datum in der modernen Java sollte der Verwendung von Java.Timeapi vorrangig machen, was klare, unver?nderliche und linear ist

    Vergleich von Java Frameworks: Spring Boot vs Quarkus gegen Micronaut Vergleich von Java Frameworks: Spring Boot vs Quarkus gegen Micronaut Aug 04, 2025 pm 12:48 PM

    Pre-Formancetartuptimemoryusage, QuarkusandmicronautleadduToCompile-Time-foringandgraalvSupport, WithQuarkusofttenperformLightBetterin serverloser Szenarien.2. Thyvelopecosystem,

    Wie funktioniert die Müllsammlung in Java? Wie funktioniert die Müllsammlung in Java? Aug 02, 2025 pm 01:55 PM

    Die Müllsammlung von Java (GC) ist ein Mechanismus, der automatisch den Speicher verwaltet, der das Risiko eines Speicherlecks verringert, indem unerreichbare Objekte zurückgeführt werden. 1.GC beurteilt die Zug?nglichkeit des Objekts aus dem Stammobjekt (z. B. Stapelvariablen, aktive Threads, statische Felder usw.) und nicht erreichbare Objekte als Müll markiert. 2. Basierend auf dem markierten Algorithmus markieren Sie alle erreichbaren Objekte und l?schen Sie nicht markierte Objekte. 3.. Verfolgen Sie eine Generationskollektionsstrategie: Die neue Generation (Eden, S0, S1) führt h?ufig MollGC aus; Die ?lteren Menschen erzielen weniger, dauert jedoch l?nger, um MajorGC durchzuführen. MetaPace speichert Klassenmetadaten. 4. JVM bietet eine Vielzahl von GC -Ger?ten: SerialGC ist für kleine Anwendungen geeignet; ParallelgC verbessert den Durchsatz; CMS reduziert sich

    Gehen Sie zum Beispiel für HTTP Middleware -Protokollierung Gehen Sie zum Beispiel für HTTP Middleware -Protokollierung Aug 03, 2025 am 11:35 AM

    HTTP-Protokoll Middleware in Go kann Anforderungsmethoden, Pfade, Client-IP und zeitaufw?ndiges Aufzeichnen aufzeichnen. 1. Verwenden Sie http.Handlerfunc, um den Prozessor zu wickeln, 2. Nehmen Sie die Startzeit und die Endzeit vor und nach dem Aufrufen als n?chstes auf. Der vollst?ndige Beispielcode wurde überprüft, um auszuführen und eignet sich zum Starten eines kleinen und mittelgro?en Projekts. Zu den Erweiterungsvorschl?gen geh?ren das Erfassen von Statuscodes, die Unterstützung von JSON -Protokollen und die Nachverfolgung von ID -IDs.

    Verwenden von HTML `Input` -Typen für Benutzerdaten Verwenden von HTML `Input` -Typen für Benutzerdaten Aug 03, 2025 am 11:07 AM

    Durch die Auswahl des richtigen HTMlinput -Typs kann die Datengenauigkeit verbessert, die Benutzererfahrung verbessert und die Benutzerfreundlichkeit verbessert werden. 1. W?hlen Sie die entsprechenden Eingabetypen gem?? dem Datentyp aus, z. B. Text, E -Mail, Tel, Nummer und Datum, die automatisch überprüft und an die Tastatur anpassen k?nnen. 2. Verwenden Sie HTML5, um neue Typen wie URL, Farbe, Reichweite und Suche hinzuzufügen, die eine intuitivere Interaktionsmethode bieten k?nnen. 3.. Verwenden Sie Platzhalter und erforderliche Attribute, um die Effizienz und Genauigkeit der Formulierung zu verbessern. Es sollte jedoch beachtet werden, dass der Platzhalter das Etikett nicht ersetzen kann.

    Vergleich von Java -Build -Werkzeugen: Maven vs. Gradle Vergleich von Java -Build -Werkzeugen: Maven vs. Gradle Aug 03, 2025 pm 01:36 PM

    GradleStheBetterChoiceFormostnewProjectsDuetoitSuperiorFlexibilit?t, Leistung und ModerntoolingSupport.1.GRADLE'SGROOVY/KOTLINDSLISMORECONCISEANDEIPRESSIVETHANMANMANBOSEXML.2.GRAGRECONCISEANDEPRPRESSIVETHANMAVENSVOSEXML.2.

    Gehen Sie mit einer Beispielverschiebung erkl?rt Gehen Sie mit einer Beispielverschiebung erkl?rt Aug 02, 2025 am 06:26 AM

    Auf Defer wird verwendet, um bestimmte Vorg?nge auszuführen, bevor die Funktion zurückgibt, z. B. die Reinigungsressourcen. Die Parameter werden sofort bewertet, wenn sie aufgeschoben werden, und die Funktionen werden in der Reihenfolge von Last-In-First-Out (LIFO) ausgeführt. 1. Mehrere Defers werden in umgekehrter Reihenfolge der Erkl?rungen ausgeführt. 2. h?ufig für die sichere Reinigung wie das Schlie?en von Dateien verwendet; 3. Der benannte Rückgabewert kann ge?ndert werden; V. 5. Vermeiden Sie den Missbrauch von Verschiebungen in Schleifen, um Ressourcenleckage zu verhindern. Die korrekte Verwendung kann die Sicherheit und die Lesbarkeit der Code verbessern.

    See all articles