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

Heim Java JavaErste Schritte Was sind die am h?ufigsten verwendeten Dateioperationen in Java?

Was sind die am h?ufigsten verwendeten Dateioperationen in Java?

Nov 27, 2020 pm 03:30 PM
java dokumentieren

Was sind die am h?ufigsten verwendeten Dateioperationen in Java?

我們先來(lái)介紹一下字節(jié)流和字符流的概念及區(qū)別:

(學(xué)習(xí)視頻分享:java教學(xué)視頻

區(qū)別字節(jié)流和字符流概念

字節(jié)流:字節(jié)流讀取的時(shí)候,讀到一個(gè)字節(jié)就返回一個(gè)字節(jié);主要用于讀取圖片,MP3,AVI視頻文件。

字符流:字符流使用了字節(jié)流讀到一個(gè)或多個(gè)字節(jié),如讀取中文時(shí),就會(huì)一次讀取2個(gè)字節(jié)。只要是處理純文本數(shù)據(jù),就要優(yōu)先考慮使用字符流。

字節(jié)流和字符流區(qū)別

字節(jié)流操作的基本單元為字節(jié);字符流操作的基本單元為Unicode碼元。字節(jié)流默認(rèn)不使用緩沖區(qū);字符流使用緩沖區(qū)。字節(jié)流通常用于處理二進(jìn)制數(shù)據(jù),實(shí)際上它可以處理任意類(lèi)型的數(shù)據(jù),但它不支持直接寫(xiě)入或讀取Unicode碼元;字符流通常處理文本數(shù)據(jù),它支持寫(xiě)入及讀取Unicode碼元。

文件常用操作:

創(chuàng)建、刪除文件夾

String path = "F:\\test";
File myFile = new File(path);

if (!myFile.exists()) {
    // 創(chuàng)建文件夾
    myFile.mkdir();
    // myFile.mkdirs();

    // 刪除文件夾
    myFile.delete();
}

// mkdirs()可以建立多級(jí)文件夾, mkdir()只會(huì)建立一級(jí)的文件夾

創(chuàng)建、刪除文件

String content = "Hello World";

// 第一種方法:根據(jù)文件路徑和文件名
String path = "F:\\test";
String filename = "test.txt";
File myFile = new File(path,filename);

// 第二種方法
String file = "F:\\test\\test.txt";
File myFile = new File(file);

if (!myFile.exists()) {
    // 創(chuàng)建文件(前提是目錄已存在,若不在,需新建目錄即文件夾)
    myFile.createNewFile();

    // 刪除文件
    myFile.delete();
}

寫(xiě)入文件

// 第一種:字節(jié)流FileOutputStream
FileOutputStream fop = new FileOutputStream(myFile); 
byte[] contentInBytes = content.getBytes();
fop.write(contentInBytes);  
fop.flush();  
fop.close(); 

// 第二種:FileWriter(參數(shù)true為追加內(nèi)容,若無(wú)則是覆蓋內(nèi)容)
FileWriter fw = new FileWriter(myFile,true);
fw.write(content);
fw.close();

// 第三種:BufferedWriter
BufferedWriter bw = new BufferedWriter(new FileWriter(myFile,true));
bw.write(content);  
bw.flush();  
bw.close(); 

// 第四種:打印流PrintStream和PrintWriter
// 字節(jié)打印流:PrintStream
// 字符打印流:PrintWriter

PrintWriter pw = new PrintWriter(new FileWriter(myFile,true));   
pw.println(content);      // 換行
pw.print(content);        // 不換行
pw.close();

// 常用BufferedWriter和PrintWriter

讀取文件

FileInputStream

// 第一種:以字節(jié)為單位讀取文件,常用于讀二進(jìn)制文件,如圖片、聲音、影像等文件。 
InputStream in = new FileInputStream(myFile);

// 一次讀一個(gè)字節(jié)
int tempbyte;  
while ((tempbyte = in.read()) != -1) {  
    System.out.write(tempbyte);  
}  
in.close();

// 一次讀多個(gè)字節(jié)
int byteread = 0;
byte[] tempbytes = new byte[100];
ReadFromFile.showAvailableBytes(in);
while ((byteread = in.read(tempbytes)) != -1) {  
    System.out.write(tempbytes, 0, byteread);  
}  

// System.out.write()方法是字符流,System.out.println()方法是字節(jié)流

InputStreamReader

// 第二種:以字符為單位讀取文件,常用于讀文本,數(shù)字等類(lèi)型的文件 
Reader reader = new InputStreamReader(new FileInputStream(myFile)); 

// 一次讀一個(gè)字節(jié)
int tempchar;  
while ((tempchar = reader.read()) != -1) {  
    // 對(duì)于windows下,\r\n這兩個(gè)字符在一起時(shí),表示一個(gè)換行。  
    // 但如果這兩個(gè)字符分開(kāi)顯示時(shí),會(huì)換兩次行。  
    // 因此,屏蔽掉\r,或者屏蔽\n。否則,將會(huì)多出很多空行。  
    if (((char) tempchar) != '\r') {  
        System.out.print((char) tempchar);  
    }  
}  
reader.close();

// 一次讀多個(gè)字節(jié)
char[] tempchars = new char[30];  
int charread = 0;  
// 讀入多個(gè)字符到字符數(shù)組中,charread為一次讀取字符數(shù)  
while ((charread = reader.read(tempchars)) != -1) {  
    // 同樣屏蔽掉\r不顯示  
    if ((charread == tempchars.length) && (tempchars[tempchars.length - 1] != '\r')) {  
        System.out.print(tempchars);  
    } else {  
        for (int i = 0; i < charread; i++) {  
            if (tempchars[i] == &#39;\r&#39;) {  
                continue;  
            } else {  
                System.out.print(tempchars[i]);  
            }  
        }  
    }  
}

BufferedReader

// 第三種:以行為單位讀取文件,常用于讀面向行的格式化文件 
BufferedReader reader = new BufferedReader(new FileReader(myFile));
String tempString = null;  
int line = 1;  
// 一次讀入一行,直到讀入null為文件結(jié)束  
while ((tempString = reader.readLine()) != null) {  
    // 顯示行號(hào)  
    System.out.println("line " + line + ": " + tempString);  
    line++;  
}  
reader.close();  

// 常用BufferedReader

遍歷文件(以刪除一個(gè)文件夾下所有文件為例)

File[] files=myFile.listFiles();   
for(int i=0;i<files.length;i++){   
    if(files[i].isDirectory()){   
        files[i].delete();   
    }   
}

文件函數(shù):

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

//讀取文件名稱(chēng)  
myFile.getName()

//讀取文件路徑(相對(duì)路徑)  
myFile.getPath()

//讀取文件絕對(duì)路徑  
myFile.getAbsolutePath()

//讀取文件的父級(jí)路徑  
new File(myFile.getAbsolutePath()).getParent()

//讀取文件的大小  
myFile.length()

//判斷文件是否被隱藏  
myFile.isHidden()

//判斷文件是否可讀  
myFile.canRead()

//判斷文件是否可寫(xiě)  
myFile.canWrite()

//判斷文件是否為文件夾  
myFile.isDirectory()

相關(guān)推薦:java入門(mén)教程

Das obige ist der detaillierte Inhalt vonWas sind die am h?ufigsten verwendeten Dateioperationen in Java?. 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

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.

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.

See all articles