激情久久久_欧美视频区_成人av免费_不卡视频一二三区_欧美精品在欧美一区二区少妇_欧美一区二区三区的

服務(wù)器之家:專注于服務(wù)器技術(shù)及軟件下載分享
分類導(dǎo)航

PHP教程|ASP.NET教程|Java教程|ASP教程|編程技術(shù)|正則表達(dá)式|C/C++|IOS|C#|Swift|Android|VB|R語言|JavaScript|易語言|vb.net|

服務(wù)器之家 - 編程語言 - Java教程 - 編程基礎(chǔ):Java 中的輸入和輸出

編程基礎(chǔ):Java 中的輸入和輸出

2021-07-28 00:07Linux中國Seth Kenlon Java教程

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

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

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

編程基礎(chǔ):Java 中的輸入和輸出

安裝 Java

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

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

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

利用 Java 讀取文件

Java 使用 File 類來加載文件。

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

  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 

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

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

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

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

運行代碼

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

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

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

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

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

  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 標(biāo)志告訴 FileWriter 將文本 追加 到文件的末尾。要覆蓋一個文件的內(nèi)容,請移除 true 標(biāo)志。

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

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

試試代碼

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

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

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

因為程序是把數(shù)據(jù)追加到文件末尾,所以你可以重復(fù)執(zhí)行你的應(yīng)用程序以多次寫入數(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 類庫來寫復(fù)雜的數(shù)據(jù),使用 INI 或 YAML 類庫來寫配置文件,或者使用各種專門類庫來寫二進(jìn)制格式,如圖像或音頻。

原文地址;https://linux.cn/article-13622-1.html

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 天天干免费视频 | 色吧久久 | 亚洲四播房 | 色无极影院亚洲 | 黄色大片在线免费观看 | 日本成人一区二区 | 成人毛片网站 | 91精品国产刺激国语对白 | 精品视频 久久久 | 一本一本久久a久久精品综合小说 | 草妞视频 | 青青草好吊色 | 国产精品啪一品二区三区粉嫩 | 少妇一级淫片免费放正片 | av在线高清观看 | 日本教室三级在线看 | 亚洲福利在线免费观看 | 国产精品美女一区二区 | 精品无码久久久久久国产 | 久久成人国产精品 | 久久精品亚洲一区二区三区观看模式 | 久草在线资源观看 | 在线播放黄色网址 | 3级毛片| 午夜精品视频免费观看 | 免费激情视频网站 | 国产精品999在线 | 一级一级一级一级毛片 | 日本在线视频一区二区三区 | 日韩大片在线永久观看视频网站免费 | 四季久久免费一区二区三区四区 | 一级尻逼视频 | 免费a网| 92看片淫黄大片欧美看国产片 | 蜜桃精品视频在线观看 | 操碰网| 一级在线免费观看视频 | 国产精品久久久久久久亚洲按摩 | 久久精品中文字幕一区二区三区 | 欧美成人三级视频 | 国产亚洲精品成人 |