日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区

您的位置:首頁技術文章
文章詳情頁

教你用Java GUI實現文本文件的讀寫

瀏覽:198日期:2022-08-12 09:27:17
目錄一、實驗題目二、分析三、實現四、全部代碼一、實驗題目

教你用Java GUI實現文本文件的讀寫

二、分析

實驗要求為:

實現一個界面,界面中包含一個文本顯示區和兩個按鈕(存檔和讀檔) 讀檔按鈕作用是打開文件并讀取內容,將內容顯示在文本區中 存檔按鈕作用是將文本區的內容寫入到文件中。

簡單分析一下,可以看出這樣的要求奧,包含的要考察知識點主要有兩個方向:

GUI繪制界面并添加事件 使用IO流對象對文件進行讀寫

好的小伙伴們,廢話不多說,下面就來的實現它。

三、實現

首先,讓我們創建一個GUI界面,先秉持著一切從簡的設計思想,預計它長這樣:

教你用Java GUI實現文本文件的讀寫

這樣的布局方式,我們可以選擇采用流布局實現,在容器中直接放入文本顯示區和兩個按鈕,適當調整窗口大小即可實現:

import java.awt.Container;import java.awt.FlowLayout;import java.awt.TextArea;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import javax.swing.JButton;import javax.swing.JFrame;public class GUIDemo extends JFrame{//三個組件private JButton saveButton;private JButton loadButton;private TextArea textArea;//容器private Container container;public GUIDemo() {//設置titlesuper('File Demo');//設置流布局setLayout(new FlowLayout());//獲取容器container = getContentPane();//三個組件textArea = new TextArea();saveButton = new JButton('save');loadButton = new JButton('load');//保存文件按鈕點擊事件saveButton.addActionListener(new ActionListener() {@Overridepublic void actionPerformed(ActionEvent e) {System.out.println('存檔成功');}});//讀入文件按鈕點擊事件loadButton.addActionListener(new ActionListener() {@Overridepublic void actionPerformed(ActionEvent e) {System.out.println('讀檔成功');}});//裝填三個組件container.add(textArea);container.add(loadButton);container.add(saveButton);//調整大小setSize(500, 300);//顯示setVisible(true);}public static void main(String[] args) {GUIDemo demo = new GUIDemo();demo.setDefaultCloseOperation(EXIT_ON_CLOSE);}}

代碼的含義都在注釋里面,就不??陸步飭恕?/p>

跑起來是這個樣子:

教你用Java GUI實現文本文件的讀寫

點擊兩下按鈕測試點擊事件,控制臺輸出:

教你用Java GUI實現文本文件的讀寫

好的,GUI界面設計完畢,下面來為兩個按鈕編寫點擊事件。

首先要解決的一個問題是“目標文件”。由于題目中沒有提到目標文件是否需要從文件系統中選取產生,那么我們不妨暫時將目標文件地址直接在代碼中,令private static final String TARGET_FILE= './temp.txt';

教你用Java GUI實現文本文件的讀寫

那么在初始化頁面時就應該先創建這個文件路徑對應的file對象:

//目標文件private File targetFile;...//創建目標文件對象targetFile = new File(TARGET_FILE);if(targetFile.createNewFile()) {System.out.println('文件不存在,創建成功');}else {System.out.println('文件存在');}

這里需要注意幾個問題:

1.創建目標文件需要使用createNewFile()方法,而非mkdir()方法。否則會創建成為文件夾而非文件

2.createNewFile()方法會拋出一個IOException,為了便于處理,這里直接選擇將異常從構造方法和主方法中拋出;

教你用Java GUI實現文本文件的讀寫教你用Java GUI實現文本文件的讀寫

教你用Java GUI實現文本文件的讀寫

教你用Java GUI實現文本文件的讀寫

處理好目標文件問題,兩次啟動程序,可以看到控制臺輸出:

教你用Java GUI實現文本文件的讀寫教你用Java GUI實現文本文件的讀寫

哦吼,文件處理成功。

接著,就是在為兩個按鈕添加點擊事件。在下面的處理中,對于IO流的選擇,我們統一選擇字符流.

首先是讀檔按鈕,它的點擊事件邏輯大致為:

1.創建目標文件的輸入字符流

2.從輸入流中讀取文件中的內容并形成結果

3.關閉輸入流

4.將讀入的結果顯示在文本顯示區中

實現成為代碼:

//讀入文件按鈕點擊事件loadButton.addActionListener(new ActionListener() {@Overridepublic void actionPerformed(ActionEvent e) {try {//字符讀入流FileReader reader = new FileReader(targetFile);//讀入緩沖區char[] buffer = new char[1024];//讀入結果StringBuffer result = new StringBuffer();//每次讀入緩沖區的長度int len;//從讀入流中讀取文件內容并形成結果while((len = reader.read(buffer)) != -1) {result.append(buffer,0,len);}//關閉讀入流reader.close();//更新文本顯示區內容textArea.setText(result.toString());System.out.println('讀檔成功');} catch (FileNotFoundException e1) {// TODO Auto-generated catch blocke1.printStackTrace();} catch (IOException e1) {// TODO Auto-generated catch blocke1.printStackTrace();}}});

在目標文件中寫下Hello World!!,運行程序,點擊load:

教你用Java GUI實現文本文件的讀寫

nice~~

好的,接下來就剩下最后一項任務了,完成存檔!

存檔按鈕的點擊事件應該為:

1.打開目標文件字符輸出流

2.獲取當前文本顯示區的內容

3.將文本顯示區的內容通過輸出流寫入文件

4.關閉輸出流

5.清空文本顯示區

哦吼,最后一條是我加上去的,其實不清空也可以。

代碼實現如下:

//保存文件按鈕點擊事件saveButton.addActionListener(new ActionListener() {@Overridepublic void actionPerformed(ActionEvent e) {try {//打開文件字符輸出流FileWriter writer = new FileWriter(targetFile);//獲取文本顯示區文本String result = textArea.getText();//寫入文件writer.write(result);//關閉輸出流writer.close();//清空文本顯示區內容textArea.setText('');System.out.println('存檔成功');} catch (IOException e1) {// TODO Auto-generated catch blocke1.printStackTrace();}}});

在文本顯示區中輸入Hello Java!!,點擊save:

教你用Java GUI實現文本文件的讀寫

啥?你說文本框里面啥也沒有?對,因為最后把內容清空了!

四、全部代碼

好了,實現了上面的全部功能,最后把代碼匯總在這里:

(謹慎抄襲哦)

import java.awt.Container;import java.awt.FlowLayout;import java.awt.TextArea;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import java.io.File;import java.io.FileNotFoundException;import java.io.FileReader;import java.io.FileWriter;import java.io.IOException;import javax.swing.JButton;import javax.swing.JFrame;public class GUIDemo extends JFrame{private static final String TARGET_FILE = './temp.txt';//三個組件private JButton saveButton;private JButton loadButton;private TextArea textArea;//容器private Container container;//目標文件private File targetFile;public GUIDemo() throws IOException {//設置titlesuper('File Demo');//設置流布局setLayout(new FlowLayout());//獲取容器container = getContentPane();//創建目標文件對象targetFile = new File(TARGET_FILE);if(targetFile.createNewFile()) {System.out.println('文件不存在,創建成功');}else {System.out.println('文件存在');}//三個組件textArea = new TextArea();saveButton = new JButton('save');loadButton = new JButton('load');//保存文件按鈕點擊事件saveButton.addActionListener(new ActionListener() {@Overridepublic void actionPerformed(ActionEvent e) {try {//打開文件字符輸出流FileWriter writer = new FileWriter(targetFile);//獲取文本顯示區文本String result = textArea.getText();//寫入文件writer.write(result);//關閉輸出流writer.close();//清空文本顯示區內容textArea.setText('');System.out.println('存檔成功');} catch (IOException e1) {// TODO Auto-generated catch blocke1.printStackTrace();}}});//讀入文件按鈕點擊事件loadButton.addActionListener(new ActionListener() {@Overridepublic void actionPerformed(ActionEvent e) {try {//字符讀入流FileReader reader = new FileReader(targetFile);//讀入緩沖區char[] buffer = new char[1024];//讀入結果StringBuffer result = new StringBuffer();//每次讀入緩沖區的長度int len;//從讀入流中讀取文件內容并形成結果while((len = reader.read(buffer)) != -1) {result.append(buffer,0,len);}//關閉讀入流reader.close();//更新文本顯示區內容textArea.setText(result.toString());System.out.println('讀檔成功');} catch (FileNotFoundException e1) {// TODO Auto-generated catch blocke1.printStackTrace();} catch (IOException e1) {// TODO Auto-generated catch blocke1.printStackTrace();}}});//裝填三個組件container.add(textArea);container.add(loadButton);container.add(saveButton);//調整大小setSize(500, 300);//顯示setVisible(true);}public static void main(String[] args) throws IOException {GUIDemo demo = new GUIDemo();demo.setDefaultCloseOperation(EXIT_ON_CLOSE);}}

標簽: Java
相關文章:
日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区
亚洲一区二区三区高清不卡| 亲子伦视频一区二区三区| 亚洲成人精品| 国产欧美一区二区三区精品酒店| 精品三级av| 日本a级不卡| 日韩av不卡一区二区| 日韩av在线播放中文字幕| 日韩影片在线观看| 日本欧美大码aⅴ在线播放| 日韩国产欧美三级| 国产色噜噜噜91在线精品| 久久不卡国产精品一区二区| 麻豆精品蜜桃视频网站| 成人在线超碰| 欧洲亚洲一区二区三区| 欧美不卡高清| 亚洲欧美不卡| 亚洲91在线| 国产精品三p一区二区| 国产欧美日韩在线一区二区 | 日韩av一级| 欧美 日韩 国产一区二区在线视频 | 日韩不卡一区二区三区 | 91精品蜜臀一区二区三区在线 | 国产乱人伦精品一区| 久久精品国产一区二区| 伊人久久在线| 国产婷婷精品| 日本aⅴ免费视频一区二区三区| 国产精品视频一区视频二区| 另类专区亚洲| 先锋影音国产一区| 国产精品一区二区精品视频观看| 国产成人精品一区二区免费看京| 成人免费电影网址| 香蕉成人久久| 国产精品毛片久久| 不卡一区综合视频| 一区二区三区午夜视频| 美女精品视频在线| 国产尤物精品| 日韩av中文在线观看| 亚洲国产成人二区| 久久国产精品毛片| 国产精品一国产精品k频道56| а√天堂8资源中文在线| 国产精品美女久久久| 国产欧美高清| 国产精品尤物| 国产综合婷婷| 国产欧美一区| 亚洲国产日韩欧美在线| 日韩精品福利一区二区三区| 久久的色偷偷| 亚洲综合欧美| 欧美好骚综合网| 亚洲制服一区| 在线一区av| 午夜性色一区二区三区免费视频| 免费在线播放第一区高清av| 婷婷激情综合| 麻豆成人91精品二区三区| 国产综合欧美| 久久97视频| 亚洲人成网77777色在线播放| 精品一区二区三区四区五区| 视频一区二区三区中文字幕| 成人黄色av| 免费在线观看不卡| 日韩精品一区二区三区中文在线 | 91麻豆精品激情在线观看最新 | 久久视频精品| 国产午夜久久av| 亚洲精品一区二区妖精| 欧美aa在线视频| 日韩中文字幕一区二区三区| 亚洲精品**中文毛片| 国产欧美一区| 蜜桃视频一区二区三区| 日韩欧美自拍| 日韩视频久久| 不卡福利视频| 国产精品亚洲综合久久| av不卡在线| 日韩久久精品网| 国产精品久久久网站| 亚洲图片久久| 日韩电影免费网址| 久久精品 人人爱| 蜜臀久久久久久久| 久久久五月天| 高清日韩欧美| 国产精品视频一区二区三区四蜜臂| 亚洲精品1区| 成人在线网站| 精品久久久亚洲| 国产精品视频首页| 日本欧美一区二区在线观看| 夜夜精品视频| 五月天久久网站| 色偷偷色偷偷色偷偷在线视频| 欧美激情日韩| 青青草伊人久久| 亚洲一区av| 亚洲不卡系列| 亚洲黄色中文字幕| 国内精品亚洲| 日本精品一区二区三区在线观看视频 | 91免费精品| 福利一区和二区| 精品三级在线| 国产一区二区视频在线看| 国产乱子精品一区二区在线观看 | 久久这里只有| 国产精品国码视频| 国产日韩视频在线| 日韩国产欧美视频| 日韩超碰人人爽人人做人人添| 蜜桃视频在线观看一区二区| 久久国产精品久久久久久电车| 亚洲一区区二区| 久久av一区| 蜜臀av在线播放一区二区三区 | 在线日韩视频| 欧美日韩一区二区综合| 亚洲成人精品| 国产尤物精品| 亚洲激情婷婷| 亚洲涩涩av| 日韩av网站免费在线| 欧美一级一区| 国产精品调教视频| 欧美aa在线视频| 成人在线免费观看91| 国语精品一区| 日韩不卡免费高清视频| 久久九九精品| 日韩在线观看一区| 日韩不卡免费高清视频| 不卡在线一区| 亚洲欧美成人综合| 天堂av一区| 国产精品一区二区三区www| 国产欧美日韩视频在线| 免费在线日韩av| 四虎国产精品免费久久| 国产精品一站二站| 欧美国产美女| 不卡在线一区| 日韩一区二区三区免费视频| 国产亚洲精品美女久久久久久久久久| 国产精品一区亚洲| 欧美国产先锋| 日韩在线第七页| 午夜亚洲一区| 国产精品丝袜在线播放| 日本免费久久| 亚洲一区二区三区高清| 欧美精品中文| 成人在线视频中文字幕| 1000部精品久久久久久久久| 国产一区二区高清| 国产探花在线精品| 五月激情久久| 亚洲伊人影院| 国产激情综合| 天堂资源在线亚洲| 99xxxx成人网| 欧美精品国产一区| 日本国产精品| 亚洲精品麻豆| 国产一区二区三区久久久久久久久| 999精品一区| 中文字幕日韩欧美精品高清在线| 国产精品白丝av嫩草影院| 日韩欧美一区二区三区免费观看| 鲁大师成人一区二区三区| 国产精品任我爽爆在线播放| 国产理论在线| 在线国产日韩| 国产精品99一区二区三| 亚洲综合二区| 国产日产一区| 久久国产小视频| 欧美精品国产白浆久久久久| 日韩成人三级| 日韩欧美2区| 欧美日韩一区二区综合| 日韩1区2区日韩1区2区| 91精品一区二区三区综合| 欧美日韩一区二区国产| 日本精品影院| 欧美私人啪啪vps| 欧美丝袜一区| 免费在线观看一区| 丝袜美腿亚洲一区| 高潮一区二区| 蜜桃久久久久久久| 天堂√8在线中文|