java實現(xiàn)對文本文件內(nèi)容的讀取與將內(nèi)容寫入到文本文件

本文內(nèi)容

  • java實現(xiàn)對文件內(nèi)容的讀取诺凡,暫時未完善插入數(shù)據(jù)庫部分
  • 將內(nèi)容寫入到文本文件耘婚,暫時未完善從數(shù)據(jù)庫查詢部分

前置知識

  • IO流
  • Exception
  • Eclipse/IDEA 等工具
  • JDBC/Hibernate/Mybatis/JPA 等

問題

  1. 配合定時任務(wù),將文本中數(shù)據(jù)導(dǎo)入到數(shù)據(jù)庫
  2. 對于數(shù)據(jù)庫的信息可以寫入到文本中方便客服修改
  3. 導(dǎo)出到文件時,根據(jù)文件狀態(tài)進行指定需要導(dǎo)出的數(shù)據(jù)
  4. 文件導(dǎo)出完畢,則該條信息的文件狀態(tài)為已導(dǎo)出
  • 實體類
package club.model;
import java.util.Date;
public class Student {
    private String id;//編號
    private String name;//姓名
    private String gender;//性別
    private Integer age;//年齡
    private Double score;//分數(shù)
    private String file_status;//文件狀態(tài)
    private Date file_time;//文件日期.方便后期管理
    private String remark;//備注
//get和set方法此處省略
//toString方法此處省略
}
  • 工具類
package club.utils;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.OutputStreamWriter;
import java.io.RandomAccessFile;
import java.util.List;

import club.model.Student;


public class ImportInfoFromText {
    public static final String OPEN_FILE_STYLE="r"; //r=read
    public static final String FIELLD_LIMIT_CHAR="\\|";//這里豎線需要被轉(zhuǎn)義一下
    
    public static void main(String[] args) {//執(zhí)行測試
//      String filePath="/home/left/Downloads/test.txt";
        String filePath="D:\\test.txt";
        readFromText(filePath);
    }
    /**
     * 從文本中讀取信息
     * @param filePath
     */
    public static int readFromText(String filePath) {
        String line_record=null;
        int count=0;
        try {
            RandomAccessFile raf=new RandomAccessFile(filePath, OPEN_FILE_STYLE);
            while(null!=(line_record=raf.readLine())) {
                         //這里看操作系統(tǒng)的編碼集,一般Windows中文默認是GBK,Linux是UTF-8
            line_record=new String(line_record.getBytes("ISO-8859-1"),"GBK");
                Student stu = parseRecord(line_record);
                System.out.println(stu);
                count+=1;
            }
            System.out.println("本次共導(dǎo)入數(shù)據(jù) "+count+" 條");
        } catch (FileNotFoundException ef) {
            ef.printStackTrace();
        } catch (IOException ei) {
            ei.printStackTrace();
        }
        return count;
    }
    /**
     * 
     * @param line_record
     * @return
     */
    public static Student parseRecord(String line_record){
        Student stu=new Student();
        
        String[] fields=line_record.split(FIELLD_LIMIT_CHAR);//拆分塊記錄
        stu.setId(fields[0]);
        stu.setName(fields[1]);
        stu.setGender(fields[2]);
        stu.setAge(Integer.parseInt(fields[3]));
        stu.setScore(Double.parseDouble(fields[4]));
        return stu;
    }
    
    public void writeToTxt(String path,String fileName) throws IOException {
        Student stu=new Student();
        stu.setFile_status("01");//對于文件狀態(tài),01表示未導(dǎo)出,02表示導(dǎo)出中,03表示已導(dǎo)出成功. 
        List<Student> stus=null;//通過查詢得到
        
        int count=0;
        OutputStreamWriter out=new OutputStreamWriter(new FileOutputStream(path+fileName,true), "UTF-8");
        try {
            if(stus.size()>0) {
                for (Student student : stus) {
                    stu.setId(student.getId());
                    stu.setFile_status("02");
                    if(1==2) {//如果更新操作順利執(zhí)行
                        out.write(student.toString());//具體格式參照toString
                        stu.setFile_status("03");
                        if(true) {
                            count+=1;
                        }
                    }else {
                        System.out.println("更新當前條數(shù)失敗  ID為  "+student.getId());
                    }
                    
                }
                System.out.println("本次共成功導(dǎo)出文到文件 "+count+" 條");
            }else {
                System.out.println("未能查詢到需要導(dǎo)出的數(shù)據(jù)");
            }
        } catch (Exception e) {
            System.out.println("writeToTxt error");
        }finally {
            out.flush();
            out.close();
        }
    }
}
  • 文本測試數(shù)據(jù)
0001|小明|1|18|100
0002|小紅|1|17|95
0003|小剛|1|17|90
0004|小麗|1|18|100
  • 讀物文件信息測試結(jié)果
讀取文件信息測試結(jié)果
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末嗦玖,一起剝皮案震驚了整個濱河市较雕,隨后出現(xiàn)的幾起案子随常,更是在濱河造成了極大的恐慌掩蛤,老刑警劉巖哮伟,帶你破解...
    沈念sama閱讀 211,376評論 6 491
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件干花,死亡現(xiàn)場離奇詭異妄帘,居然都是意外死亡,警方通過查閱死者的電腦和手機池凄,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,126評論 2 385
  • 文/潘曉璐 我一進店門抡驼,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人肿仑,你說我怎么就攤上這事致盟。” “怎么了尤慰?”我有些...
    開封第一講書人閱讀 156,966評論 0 347
  • 文/不壞的土叔 我叫張陵馏锡,是天一觀的道長。 經(jīng)常有香客問我伟端,道長杯道,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 56,432評論 1 283
  • 正文 為了忘掉前任责蝠,我火速辦了婚禮党巾,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘玛歌。我一直安慰自己昧港,他們只是感情好,可當我...
    茶點故事閱讀 65,519評論 6 385
  • 文/花漫 我一把揭開白布支子。 她就那樣靜靜地躺著创肥,像睡著了一般。 火紅的嫁衣襯著肌膚如雪值朋。 梳的紋絲不亂的頭發(fā)上叹侄,一...
    開封第一講書人閱讀 49,792評論 1 290
  • 那天,我揣著相機與錄音昨登,去河邊找鬼趾代。 笑死,一個胖子當著我的面吹牛丰辣,可吹牛的內(nèi)容都是我干的撒强。 我是一名探鬼主播,決...
    沈念sama閱讀 38,933評論 3 406
  • 文/蒼蘭香墨 我猛地睜開眼笙什,長吁一口氣:“原來是場噩夢啊……” “哼飘哨!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起琐凭,我...
    開封第一講書人閱讀 37,701評論 0 266
  • 序言:老撾萬榮一對情侶失蹤芽隆,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體胚吁,經(jīng)...
    沈念sama閱讀 44,143評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡牙躺,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,488評論 2 327
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了腕扶。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片孽拷。...
    茶點故事閱讀 38,626評論 1 340
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖蕉毯,靈堂內(nèi)的尸體忽然破棺而出乓搬,到底是詐尸還是另有隱情思犁,我是刑警寧澤代虾,帶...
    沈念sama閱讀 34,292評論 4 329
  • 正文 年R本政府宣布,位于F島的核電站激蹲,受9級特大地震影響棉磨,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜学辱,卻給世界環(huán)境...
    茶點故事閱讀 39,896評論 3 313
  • 文/蒙蒙 一乘瓤、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧策泣,春花似錦衙傀、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,742評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至危队,卻和暖如春聪建,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背茫陆。 一陣腳步聲響...
    開封第一講書人閱讀 31,977評論 1 265
  • 我被黑心中介騙來泰國打工金麸, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人簿盅。 一個月前我還...
    沈念sama閱讀 46,324評論 2 360
  • 正文 我出身青樓挥下,卻偏偏與公主長得像,于是被迫代替她去往敵國和親桨醋。 傳聞我的和親對象是個殘疾皇子棚瘟,可洞房花燭夜當晚...
    茶點故事閱讀 43,494評論 2 348

推薦閱讀更多精彩內(nèi)容

  • 效能和學(xué)習 上周踐行發(fā)揮高能量, 一天吃了8只青蛙讨盒, 在截止日之前完成了客戶的任務(wù)解取, 感到非常開心。 但是由于工作...
    小米粒愛讀書閱讀 91評論 0 0
  • 年少輕狂, 做了很多錯事. 前幾天清理微信僵尸好友, 才發(fā)現(xiàn)你已經(jīng)把我刪了. 對于你, 我一直心懷愧疚, 恨我自己...
    yehun閱讀 295評論 0 0
  • 1振乏、“氣”蔗包。(1)形容人的自高自大的傲氣,就用“牛氣”慧邮。(2)形容人的脾氣调限、性格固執(zhí)倔強和犟脾氣時,就用“牛脾氣”...
    哩啦創(chuàng)新君閱讀 1,110評論 0 0