自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

編程基礎:Java 中的輸入和輸出

開發(fā) 后端
當你寫一個程序時,你的應用程序可能需要讀取和寫入存儲在用戶計算機上的文件。這在你想加載或存儲配置選項,你需要創(chuàng)建日志文件,或你的用戶想要保存工作以待后用的情況下是很常見的。每種語言處理這項任務的方式都有所不同。本文演示了如何用 Java 處理數(shù)據(jù)文件。

學習 Java 如何外理數(shù)據(jù)的讀與寫。

當你寫一個程序時,你的應用程序可能需要讀取和寫入存儲在用戶計算機上的文件。這在你想加載或存儲配置選項,你需要創(chuàng)建日志文件,或你的用戶想要保存工作以待后用的情況下是很常見的。每種語言處理這項任務的方式都有所不同。本文演示了如何用 Java 處理數(shù)據(jù)文件。

[[413507]]

安裝 Java

不管你的計算機是什么平臺,你都可以從 AdoptOpenJDK 安裝 Java。這個網(wǎng)站提供安全和開源的 Java 構(gòu)建。在 Linux 上,你的軟件庫中也可能找到 AdoptOpenJDK 的構(gòu)建。

我建議你使用最新的長期支持(LTS)版本。最新的非 LTS 版本對希望嘗試最新 Java 功能的開發(fā)者來說是最好的,但它很可能超過大多數(shù)用戶所安裝的版本 —— 要么是系統(tǒng)上默認安裝的,要么是以前為其他 Java 應用安裝的。使用 LTS 版本可以確保你與大多數(shù)用戶所安裝的版本保持一致。

一旦你安裝好了 Java,就可以打開你最喜歡的文本編輯器并準備開始寫代碼了。你可能還想要研究一下 Java 集成開發(fā)環(huán)境。BlueJ 是新程序員的理想選擇,而 Eclipse 和 Netbeans 對中級和有經(jīng)驗的編碼者更友好。

利用 Java 讀取文件

Java 使用 File 類來加載文件。

這個例子創(chuàng)建了一個叫 Ingest 的類來讀取文件中數(shù)據(jù)。當你要在 Java 中打開一個文件時,你創(chuàng)建了一個 Scanner 對象,它可以逐行掃描你提供的文件。事實上,Scanner 與文本編輯器中的光標是相同的概念,這樣你可以用 Scanner 的一些方法(如 nextLine)來控制這個“光標”以進行讀寫。

  1. import java.io.File; 
  2. import java.util.Scanner; 
  3. import java.io.FileNotFoundException; 
  4. public class Ingest { 
  5.   public static void main(String[] args) { 
  6.     
  7.       try { 
  8.           File myFile = new File("example.txt"); 
  9.           Scanner myScanner = new Scanner(myFile); 
  10.           while (myScanner.hasNextLine()) { 
  11.               String line = myScanner.nextLine(); 
  12.               System.out.println(line); 
  13.           } 
  14.           myScanner.close(); 
  15.       } catch (FileNotFoundException ex) { 
  16.           ex.printStackTrace();   
  17.       } //try 
  18.     } //main 
  19. } //class 

這段代碼首先在假設存在一個名為 example.txt 的文件的情況下創(chuàng)建了變量 myfile。如果該文件不存在,Java 就會“拋出一個異常”(如它所說的,這意味著它在你試圖做的事情中發(fā)現(xiàn)了一個錯誤),這個異常是被非常特定的 FileNotFoundException 類所“捕獲”。事實上,有一個專門的類來處理這個明確的錯誤,這說明這個錯誤是多么常見。

接下來,它創(chuàng)建了一個 Scanner 并將文件加載到其中。我把它叫做 myScanner,以區(qū)別于它的通用類模板。接著,一個 while 循環(huán)將 myScanner 逐行送入文件中,只要 存在 下一行。這就是 hasNextLine 方法的作用:它檢測“光標”之后是否還有數(shù)據(jù)。你可以通過在文本編輯器中打開一個文件來模擬這個過程:你的光標從文件的第一行開始,你可以用鍵盤控制光標來向下掃描文件,直到你走完了所有的行。

while 循環(huán)創(chuàng)建了一個變量 line,并將文件當前行的數(shù)據(jù)分配給它。然后將 line 的內(nèi)容打印出來以提供反饋。一個更有用的程序可能會解析每一行的內(nèi)容,從而提取它所包含的任何重要數(shù)據(jù)。

在這個過程結(jié)束時,關閉 myScanner 對象。

運行代碼

將你的代碼保存到 Ingest.java 文件(這是一個 Java 慣例,將類名的首字母大寫,并以類名來命名相應的文件)。如果你試圖運行這個簡單的應用程序,你可能會接收到一個錯誤信息,這是因為還沒有 example.txt 文件供應用程序加載:

  1. $ java ./Ingest.java 
  2. java.io.FileNotFoundException: 
  3. example.txt (No such file or directory) 

正好可以編寫一個將數(shù)據(jù)寫入文件的 Java 應用程序,多么完美的時機!

利用 Java 將數(shù)據(jù)寫入文件

無論你是存儲用戶使用你的應用程序創(chuàng)建的數(shù)據(jù),還是僅僅存儲關于用戶在應用程序中做了什么的元數(shù)據(jù)(例如,游戲保存或最近播放的歌曲),有很多很好的理由來存儲數(shù)據(jù)供以后使用。在 Java 中,這是通過 FileWriter 類實現(xiàn)的,這次先打開一個文件,向其中寫入數(shù)據(jù),然后關閉該文件。

  1. import java.io.FileWriter; 
  2. import java.io.IOException; 
  3. public class Exgest { 
  4.   public static void main(String[] args) { 
  5.     try { 
  6.         FileWriter myFileWriter = new FileWriter("example.txt"true); 
  7.         myFileWriter.write("Hello world\n"); 
  8.         myFileWriter.close(); 
  9.     } catch (IOException ex) { 
  10.         System.out.println(ex); 
  11.     } // try 
  12.   } // main 

這個類的邏輯和流程與讀取文件類似。但它不是一個 Scanner,而是以一個文件的名字為參數(shù)創(chuàng)建的一個 FileWriter 對象。FileWriter 語句末尾的 true 標志告訴 FileWriter 將文本 追加 到文件的末尾。要覆蓋一個文件的內(nèi)容,請移除 true 標志。

  1. `FileWriter myFileWriter = new FileWriter("example.txt"true);` 

因為我在向文件中寫入純文本,所以我在寫入文件的數(shù)據(jù)(Hello world)的結(jié)尾處手動添加了換行符(\n)。

試試代碼

將這段代碼保存到 Exgest.java 文件,遵循 Java 的慣例,使文件名為與類名相匹配。

既然你已經(jīng)掌握了用 Java 創(chuàng)建和讀取數(shù)據(jù)的方法,你可以按相反的順序嘗試運行你的新應用程序。

  1. $ java ./Exgest.java 
  2. $ java ./Ingest.java 
  3. Hello world 

因為程序是把數(shù)據(jù)追加到文件末尾,所以你可以重復執(zhí)行你的應用程序以多次寫入數(shù)據(jù),只要你想把更多的數(shù)據(jù)添加到你的文件中。

  1. $ java ./Exgest.java 
  2. $ java ./Exgest.java 
  3. $ java ./Exgest.java 
  4. $ java ./Ingest.java 
  5. Hello world 
  6. Hello world 
  7. Hello world 

Java 和數(shù)據(jù)

你不會經(jīng)常向文件中寫入原始文本;事實上,你可能會使用一個其它的類庫以寫入特定的格式。例如,你可能使用 XML 類庫來寫復雜的數(shù)據(jù),使用 INI 或 YAML 類庫來寫配置文件,或者使用各種專門類庫來寫二進制格式,如圖像或音頻。

責任編輯:未麗燕 來源: Linux中國
相關推薦

2020-09-04 11:02:47

Java技巧參數(shù)

2022-11-10 15:08:44

Linux輸入輸出

2025-02-24 11:03:11

Python編程語言數(shù)據(jù)類型轉(zhuǎn)換

2011-11-28 09:25:36

Java輸入輸出

2009-06-10 18:18:43

Java GUI用戶界面

2011-06-08 15:21:18

多維數(shù)組

2009-03-12 10:52:43

Java線程多線程

2023-02-16 09:55:24

對象編程OOP

2011-07-21 10:17:53

java

2020-11-04 08:28:11

Mybatis

2020-02-06 19:12:36

Java函數(shù)式編程編程語言

2017-03-08 16:05:19

Linux文件輸入輸出

2011-07-05 14:42:46

java

2023-03-25 20:13:28

Python

2011-07-21 17:45:02

java

2011-07-22 09:43:37

java

2009-06-11 13:08:29

Java內(nèi)部類Java編程思想

2010-03-19 18:09:35

Java編程語言

2011-07-21 17:18:52

java

2011-07-22 10:02:07

java
點贊
收藏

51CTO技術(shù)棧公眾號