国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

日記本-課后程序(JAVA基礎案例教程-黑馬程序員編著-第七章-課后作業(yè))

這篇具有很好參考價值的文章主要介紹了日記本-課后程序(JAVA基礎案例教程-黑馬程序員編著-第七章-課后作業(yè))。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

【實驗7-3】? 日記本

【任務介紹】

? 1.任務描述

編寫一個日記本功能的程序,使用字節(jié)流經(jīng)日記的具體信息記錄在本地的txt文件中。當用戶輸入日記的特定內(nèi)容后,會將輸入的內(nèi)容保存至本地的txt文件中。需要輸入的內(nèi)容包括“姓名”,“天氣”、“標題”、“內(nèi)容”的數(shù)據(jù)。保存的時候需要判斷本地是否存在文件,如果存在則追加,不存在則新建。文件命名格式為“黑馬日記本”加上“.txt”后綴,如“黑馬日記本.txt”

? 2.運行結(jié)果

任務運行結(jié)果如圖7-1所示。

日記本-課后程序(JAVA基礎案例教程-黑馬程序員編著-第七章-課后作業(yè))

圖7-2 運行結(jié)果

運行結(jié)束后在本地生成一個“黑馬日記本.txt”文件,如圖7-2所示。

日記本-課后程序(JAVA基礎案例教程-黑馬程序員編著-第七章-課后作業(yè))

圖7-2 黑馬日記本.txt

?

【實現(xiàn)思路】

(1)為方便保存日記的相關信息,可以將日記信息封裝成一個實體類。

(2)用戶編寫日記時,首先創(chuàng)建一個集合用于存放日記,然后用戶依次填寫的內(nèi)容為“姓名”,“天氣”、“標題”和“內(nèi)容”,并將這些內(nèi)容存放在集合中,再將實體類保存到txt文件中。

(3)查詢?nèi)沼洉r,使用字節(jié)流的讀取實現(xiàn)控制臺打印日記信息。

(4)將日記信息寫入到txt文件之前,需先拼湊好txt文件名,再判斷本地是否已存在此文件,這里可通過輸入流嘗試獲取此文件的字節(jié)流,如果獲取成功,則證明這個文件已存在,那么就通過輸出流向文件末尾追加日記信息,如果獲取失敗,即異常,說明之前并沒有生成日記信息,則需要新建此文件。

【實現(xiàn)代碼】

日記小功能的實現(xiàn)代碼,如文件7-1所示。

(1)將日記信息封裝成一個實體類Diary,具體如文件7-1所示。

文件7-1 Diary.java

  1. package chapter0703;
  2. public class Diary {
  3. ????String time; ?? //時間
  4. ????String name; //姓名
  5. ????String weather;//天氣
  6. ????String title;//標題
  7. ????String content;//內(nèi)容
  8. ????public Diary(String time, String name, String weather, String title,
  9. ?????????????????String content) {
  10. ????????this.time = time;
  11. ????????this.name = name;
  12. ????????this.weather = weather;
  13. ????????this.title = title;
  14. ????????this.content=content;
  15. ????}
  16. }

在文件7-1中,第3-7行代碼定義了用于標識日記信息的各個字段,第8-14行代碼重新了toString()方法。

(2)定義DiaryOrder類來記錄和操作日記信息,具體如文件7-2所示。

文件7-2 DiaryOrder.java

  1. package chapter0703;
  2. import java.text.DateFormat;
  3. import java.text.SimpleDateFormat;
  4. import java.util.ArrayList;
  5. import java.util.Date;
  6. import java.util.Scanner;
  7. public class DiaryOrder {
  8. ????static ArrayList<Diary> diarysList=new ArrayList<Diary>();
  9. ????public static void main(String[] args) throws Exception {
  10. ????????System.out.println("--------歡迎來到黑馬日記本--------");
  11. ????????boolean falg = true;
  12. ????????Scanner scan=new Scanner(System.in);
  13. ????????while(falg) {
  14. ????????????System.out.println("1.編寫日記");
  15. ????????????System.out.println("2.查看日記");
  16. ????????????int a = scan.nextInt();
  17. ????????????if(a==1) {
  18. ????????????????//編寫日記
  19. ????????????????System.out.println("請輸入姓名:");
  20. ????????????????String name=scan.next();
  21. ????????????????System.out.println("請輸入天氣:");
  22. ????????????????String weather=scan.next();
  23. ????????????????System.out.println("請輸入標題:");
  24. ????????????????String title=scan.next();
  25. ????????????????System.out.println("請輸入內(nèi)容:");
  26. ????????????????String content=scan.next();
  27. ????????????????Diary diary = addDiary(name,weather,title,content);
  28. ????????????????FileUtil.saveBooks(diary);
  29. ????????????}else if(a==2) {
  30. ????????????????//查看日記
  31. ????????????????FileUtil.readFile();
  32. ????????????}else {
  33. ????????????????System.out.println("輸入錯誤");
  34. ????????????}
  35. ????????}
  36. ????}
  37. ????/*
  38. ?????* 初始化日記列表 將輸入的字符暫存為實體
  39. ?????*/
  40. ????private static Diary addDiary(String name,String weather,String
  41. ????????????title,String content) {
  42. ????????Date date = new Date();
  43. ????????DateFormat format = new SimpleDateFormat("yyyyMMdd");
  44. ????????String a=format.format(date).toString();
  45. ????????Diary diary=new Diary(a,name,weather,title,content);
  46. ????????return diary;
  47. ????}
  48. }

在文件7-2中,第8行代碼創(chuàng)建了ArrayList類型的全局變量作為存儲日記的倉庫。第13~35行代碼使用while循環(huán)輸入操作,第19~26行代碼讓用戶輸入日記,第27~28行代碼將用戶輸入的日記存入本地文件,第31行代碼調(diào)用readFile()方法顯示日記,第40~47行代碼初始化日記信息。

(3)定義工具類FileUtil保存日記信息,具體如文件7-3所示。

文件7-3 FileUtil.java

  1. package chapter0703;
  2. import java.io.BufferedOutputStream;
  3. import java.io.FileInputStream;
  4. import java.io.FileNotFoundException;
  5. import java.io.FileOutputStream;
  6. import java.io.IOException;
  7. import java.io.InputStream;
  8. import java.text.DateFormat;
  9. import java.text.SimpleDateFormat;
  10. import java.util.Date;
  11. /**
  12. ?* 工具類
  13. ?*/
  14. public class FileUtil {
  15. ????public static final String SEPARATE_FIELD = "\n";// 換行
  16. ????public static final String SEPARATE_LINE = "\t"; // 分隔
  17. ????/**
  18. ?????* 保存日記信息
  19. ?????*/
  20. ????public static void saveBooks(Diary diary) {
  21. ????// 判斷本地是否存在此文件
  22. ????String name = "黑馬日記本.txt";
  23. ????File file = new File("name");
  24. ????if (!file.exists()) {
  25. ????????????createFile(name, false, diary);
  26. ?????} else {
  27. ????????????createFile(name, true, diary);
  28. ?????}
  29. ??}
  30. ????/**
  31. ?????* 將日記信息保存到本地,可通過label標識來判斷是修改文件還是新建文件
  32. ?????* @param name? 文件名
  33. ?????* @param label 文件已存在的標識 true:已存在則修改; false:不存在則新建
  34. ?????* @param diary 日記信息
  35. ?????*/
  36. ????public static void createFile(String name, boolean label, Diary diary) {
  37. ????????BufferedOutputStream out = null;
  38. ????????StringBuffer sbf = new StringBuffer();// 拼接內(nèi)容
  39. ????????try {
  40. ????????????if (label) {// 當已存在當天的文件,則在文件內(nèi)容后追加
  41. ????????????????// 創(chuàng)建輸出流,用于追加文件
  42. ?????????????out = new BufferedOutputStream(new FileOutputStream(name, true));
  43. ????????????} else {// 不存在當天文件,則新建文件
  44. ????????????????// 創(chuàng)建輸出流,用于保存文件
  45. ????????????????out = new BufferedOutputStream(new FileOutputStream(name));
  46. ????????????????String fieldSort =? "歡迎來到黑馬日記本" ;// 創(chuàng)建表頭
  47. ????????????????// 新建時,將表頭存入本地文件
  48. ????????????????sbf.append(fieldSort).append(SEPARATE_FIELD);
  49. ????????????}
  50. ??????????sbf.append("時間:").append(diary.time);// 追加換行符號
  51. ??????????sbf.append("姓名:").append(diary.name).append(SEPARATE_LINE);
  52. ??????????sbf.append("標題:").append(diary.title).append(SEPARATE_LINE);
  53. ??????????sbf.append("天氣:").append(diary.weather).append(SEPARATE_FIELD);
  54. ??????????sbf.append("內(nèi)容:").append(diary.content).append(SEPARATE_FIELD);
  55. ????????????String str = sbf.toString();
  56. ????????????byte[] b = str.getBytes();
  57. ????????????for (int i = 0; i < b.length; i++) {
  58. ????????????????out.write(b[i]);// 將內(nèi)容寫入本地文件
  59. ????????????}
  60. ????????} catch (Exception e) {
  61. ????????????e.printStackTrace();
  62. ????????} finally {
  63. ????????????try {
  64. ????????????????if (out != null)
  65. ????????????????????out.close();// 關閉輸出流
  66. ????????????} catch (Exception e2) {
  67. ????????????????e2.printStackTrace();
  68. ????????????}
  69. ????????}
  70. ????}
  71. ????/*
  72. ?????* 讀取日記并顯示
  73. ?????*/
  74. ????public static void readFile() throws Exception{
  75. ????????//創(chuàng)建文件字節(jié)輸出流
  76. ????????FileInputStream in = new FileInputStream("黑馬日記本.txt");
  77. ????????byte[] b = new byte[in.available()];
  78. ????????in.read(b);
  79. ????????String str=new String(b);
  80. ????????System.out.println(str);
  81. ????????in.close();
  82. ????}
  83. }

在文件7-3中,當saveBooks()方法被調(diào)用時,獲取當前日期并格式化后,拼出了文件名,再通過第24~29行代碼判斷文件是否存在,如果存在,則修改文件,如果不存在,則創(chuàng)建一個新文件。

第36~70行代碼定義了createFile()方法,createFile()方法中的label參數(shù)如果為true則追加內(nèi)容,如果label值是false則新建文件。第50~55行代碼行代碼拼出一行數(shù)據(jù),且在每次拼接之前都要加上換行符“\r\n”,每個字段之間通過“,”分隔字段;第56~59行代碼將內(nèi)容寫入文件。第63~69行代碼關閉了輸出流。文章來源地址http://www.zghlxwxcb.cn/news/detail-445557.html

到了這里,關于日記本-課后程序(JAVA基礎案例教程-黑馬程序員編著-第七章-課后作業(yè))的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權(quán),不承擔相關法律責任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實不符,請點擊違法舉報進行投訴反饋,一經(jīng)查實,立即刪除!

領支付寶紅包贊助服務器費用

相關文章

  • 打印不同的圖形-課后程序(JAVA基礎案例教程-黑馬程序員編著-第四章-課后作業(yè))

    打印不同的圖形-課后程序(JAVA基礎案例教程-黑馬程序員編著-第四章-課后作業(yè))

    【案例4-1】打印不同的圖形 記得 關注,收藏,評論哦,作者將持續(xù)更新。。。。 【案例介紹】 案例描述 本案例要求編寫一個程序,可以根據(jù)用戶要求在控制臺打印出不同的圖形。例如,用戶自定義半徑的圓形和用戶自定義邊長的正方形。 運行結(jié)果 ? 【案例分析】 ( 1 )

    2024年02月01日
    瀏覽(28)
  • 模擬QQ登錄-課后程序(JAVA基礎案例教程-黑馬程序員編著-第十一章-課后作業(yè))

    模擬QQ登錄-課后程序(JAVA基礎案例教程-黑馬程序員編著-第十一章-課后作業(yè))

    【案例11-3】 模擬QQ登錄 【案例介紹】 1. 案例描述 QQ是現(xiàn)實生活中常用的聊天工具,QQ登錄界面看似小巧、簡單,但其中涉及的內(nèi)容卻很多,對于初學者練習Java Swing工具的使用非常合適。本案例要求使用所學的Java Swing知識,模擬實現(xiàn)一個QQ登錄界面。 2. 運行結(jié)果 ? 運行結(jié)果

    2024年02月08日
    瀏覽(115)
  • 簡易計算器-課后程序(JAVA基礎案例教程-黑馬程序員編著-第十一章-課后作業(yè))

    簡易計算器-課后程序(JAVA基礎案例教程-黑馬程序員編著-第十一章-課后作業(yè))

    【案例11-2】 簡易計算器 【案例介紹】 1. 案例描述 本案例要求利用Java Swing 圖形組件開發(fā)一個可以進行簡單的四則運算的圖形化計算器。 2. 運行結(jié)果 運行結(jié)果 ? 【案例分析】 要制作一個計算器,首先要知道它由哪些部分組成,如下圖所示: 一個簡單的圖形化界面計算器,

    2024年02月03日
    瀏覽(115)
  • 黑馬程序員《PHP基礎案例教程》第2版課后練習—第03章

    答案均參考教材官方發(fā)布的PPT,以下是下載PPT的頁面 人民郵電出版社教育社區(qū):PHP基礎案例教程(第2版)-圖書-人郵教育社區(qū) 1、定義函數(shù)使用的為(function)。 2、用于對字符串中的某些字符進行替換操作的函數(shù)是(str_replace())。 3、使用(strlen())函數(shù)可以獲取字符

    2024年01月18日
    瀏覽(30)
  • 刮刮樂--課后程序(Python程序開發(fā)案例教程-黑馬程序員編著-第4章-課后作業(yè))

    刮刮樂的玩法多種多樣,彩民只要刮去刮刮樂上的銀色油墨即可查看是否中獎。每張刮刮樂都有多個兌獎區(qū),每個兌獎區(qū)對應著不同的獲獎信息,包括“一等獎”、“二等獎”、“三等獎”和“謝謝惠顧”。假設現(xiàn)在有一張刮刮樂,該卡片上面共有8個刮獎區(qū),每個刮獎區(qū)對應

    2024年02月06日
    瀏覽(472)
  • 井字棋--課后程序(Python程序開發(fā)案例教程-黑馬程序員編著-第7章-課后作業(yè))

    井字棋--課后程序(Python程序開發(fā)案例教程-黑馬程序員編著-第7章-課后作業(yè))

    井字棋是一種在3 * 3格子上進行的連珠游戲,又稱井字游戲。井字棋的游戲有兩名玩家,其中一個玩家畫圈,另一個玩家畫叉,輪流在3 * 3格子上畫上自己的符號,最先在橫向、縱向、或斜線方向連成一條線的人為勝利方。如圖1所示為畫圈的一方為勝利者。 ? 圖1 井字棋 本實

    2024年02月04日
    瀏覽(188)
  • 手機通訊錄--課后程序(Python程序開發(fā)案例教程-黑馬程序員編著-第5章-課后作業(yè))

    手機通訊錄--課后程序(Python程序開發(fā)案例教程-黑馬程序員編著-第5章-課后作業(yè))

    通訊錄是記錄了聯(lián)系人姓名和聯(lián)系方式的名錄,手機通訊錄是最常見的通訊錄之一,人們可以在通訊錄中通過姓名查看相關聯(lián)系人的聯(lián)系方式、郵箱、地址等信息,也可以在其中新增聯(lián)系人,或修改、刪除聯(lián)系人信息。下面是一個常見通訊錄的功能菜單,如圖1所示。 ? 圖1

    2024年02月01日
    瀏覽(89)
  • 銀行管理系統(tǒng)--課后程序(Python程序開發(fā)案例教程-黑馬程序員編著-第7章-課后作業(yè))

    銀行管理系統(tǒng)--課后程序(Python程序開發(fā)案例教程-黑馬程序員編著-第7章-課后作業(yè))

    從早期的錢莊到現(xiàn)如今的銀行,金融行業(yè)在不斷地變革;隨著科技的發(fā)展、計算機的普及,計算機技術(shù)在金融行業(yè)得到了廣泛的應用。銀行管理系統(tǒng)是一個集開戶、查詢、取款、存款、轉(zhuǎn)賬、鎖定、解鎖、退出等一系列的功能的管理系統(tǒng),該系統(tǒng)中各功能的介紹如下。 開戶功

    2024年02月04日
    瀏覽(95)
  • 逢七拍手游戲--課后程序(Python程序開發(fā)案例教程-黑馬程序員編著-第3章-課后作業(yè))

    逢7拍手游戲的規(guī)則是:從1開始順序數(shù)數(shù),數(shù)到有7或者包含7的倍數(shù)的時候拍手。本實例要求編寫程序,模擬實現(xiàn)逢七拍手游戲,輸出100以內(nèi)需要拍手的數(shù)字。 掌握for循環(huán)與range()函數(shù)的使用 掌握字符串中find()方法的使用 判斷一個數(shù)字是否與7相關,可分為兩種情況: 1.是否為

    2024年02月06日
    瀏覽(138)
  • 加油優(yōu)惠價格計算-課后程序(JavaScript前端開發(fā)案例教程-黑馬程序員編著-第2章-課后作業(yè))

    加油優(yōu)惠價格計算-課后程序(JavaScript前端開發(fā)案例教程-黑馬程序員編著-第2章-課后作業(yè))

    一、案例描述 考核知識點 if 、 if…else 、if…else if…else 練習目標 掌握if單分支語句。 掌握if…else雙分支語句 掌握if…else if…else多分支語句 需求分析 加油站,為了鼓勵車主多加油,實行多加多優(yōu)惠政策,具體優(yōu)惠如下: 已知92號汽油,每升6元;如果大于等于20升,那么每

    2024年02月07日
    瀏覽(108)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領取紅包,優(yōu)惠每天領

二維碼1

領取紅包

二維碼2

領紅包