問征夫以前路
          感謝所有關(guān)心過支持過我的人, 感謝所有恨過我嘲笑過我的人 !
          posts - 30,comments - 147,trackbacks - 0

                  這周忙的連滾帶爬的,終于在周末前把項(xiàng)目完工了。這次主要做的是一個UDP協(xié)議的轉(zhuǎn)發(fā)器,是一個純java寫的程序,沒有任何的框架在里面。其中為了保留住傳進(jìn)來的數(shù)據(jù),我們用TXT文本記錄下這些數(shù)據(jù)。文件代碼傳上來,需要的朋友直接下載就可以用。

          import java.io.*;


          /**
           * 
           * 功能描述:創(chuàng)建TXT文件并進(jìn)行讀、寫、修改操作
           *      
           * 
          @author <a href="mailto:zhanghhui@126.com">KenZhang</a>
           * 
          @version 1.0 
           * Creation date: 2007-12-18 - 下午06:48:45
           
          */

          public class ReadWriteFile {
              
          public static BufferedReader bufread;
              
          //指定文件路徑和名稱
              private static String path = "D:/suncity.txt";
              
          private static  File filename = new File(path);
              
          private static String readStr ="";


              
          /**
               * 創(chuàng)建文本文件.
               * 
          @throws IOException 
               * 
               
          */

              
          public static void creatTxtFile() throws IOException{
                  
          if (!filename.exists()) {
                      filename.createNewFile();
                      System.err.println(filename 
          + "已創(chuàng)建!");
                  }

              }

              
              
          /**
               * 讀取文本文件.
               * 
               
          */

              
          public static String readTxtFile(){
                  String read;
                  FileReader fileread;
                  
          try {
                      fileread 
          = new FileReader(filename);
                      bufread 
          = new BufferedReader(fileread);
                      
          try {
                          
          while ((read = bufread.readLine()) != null{
                              readStr 
          = readStr + read+ "\r\n";
                          }

                      }
           catch (IOException e) {
                          
          // TODO Auto-generated catch block
                          e.printStackTrace();
                      }

                  }
           catch (FileNotFoundException e) {
                      
          // TODO Auto-generated catch block
                      e.printStackTrace();
                  }


                  System.out.println(
          "文件內(nèi)容是:"+ "\r\n" + readStr);
                  
          return readStr;
              }

              
              
          /**
               * 寫文件.
               * 
               
          */

              
          public static void writeTxtFile(String newStr) throws IOException{
                  
          //先讀取原有文件內(nèi)容,然后進(jìn)行寫入操作
                  String filein = newStr + "\r\n" + readStr + "\r\n";
                  RandomAccessFile mm 
          = null;
                  
          try {
                      mm 
          = new RandomAccessFile(filename, "rw");
                      mm.writeBytes(filein);
                  }
           catch (IOException e1) {
                      
          // TODO 自動生成 catch 塊
                      e1.printStackTrace();
                  }
           finally {
                      
          if (mm != null{
                          
          try {
                              mm.close();
                          }
           catch (IOException e2) {
                              
          // TODO 自動生成 catch 塊
                              e2.printStackTrace();
                          }

                      }

                  }

              }

              
              
          /**
               * 將文件中指定內(nèi)容的第一行替換為其它內(nèi)容.
               * 
               * 
          @param oldStr
               *            查找內(nèi)容
               * 
          @param replaceStr
               *            替換內(nèi)容
               
          */

              
          public static void replaceTxtByStr(String oldStr,String replaceStr) {
                  String temp 
          = "";
                  
          try {
                      File file 
          = new File(path);
                      FileInputStream fis 
          = new FileInputStream(file);
                      InputStreamReader isr 
          = new InputStreamReader(fis);
                      BufferedReader br 
          = new BufferedReader(isr);
                      StringBuffer buf 
          = new StringBuffer();

                      
          // 保存該行前面的內(nèi)容
                      for (int j = 1; (temp = br.readLine()) != null
                              
          && !temp.equals(oldStr); j++{
                          buf 
          = buf.append(temp);
                          buf 
          = buf.append(System.getProperty("line.separator"));
                      }


                      
          // 將內(nèi)容插入
                      buf = buf.append(replaceStr);

                      
          // 保存該行后面的內(nèi)容
                      while ((temp = br.readLine()) != null{
                          buf 
          = buf.append(System.getProperty("line.separator"));
                          buf 
          = buf.append(temp);
                      }


                      br.close();
                      FileOutputStream fos 
          = new FileOutputStream(file);
                      PrintWriter pw 
          = new PrintWriter(fos);
                      pw.write(buf.toString().toCharArray());
                      pw.flush();
                      pw.close();
                  }
           catch (IOException e) {
                      e.printStackTrace();
                  }

              }

              
          /**
               * main方法測試
               * 
          @param s
               * 
          @throws IOException
               
          */

              
          public static void main(String[] s) throws IOException {
                  ReadWriteFile.creatTxtFile();
                  ReadWriteFile.readTxtFile();
                  ReadWriteFile.writeTxtFile(
          "20080808:12:13");
          //        ReadWriteFile.replaceTxtByStr("ken", "zhang");
              }

          }



          posted on 2007-12-21 16:46 kenzhang 閱讀(75900) 評論(17)  編輯  收藏

          FeedBack:
          # 發(fā)布代碼時,怎么實(shí)現(xiàn)可伸縮節(jié)點(diǎn)[未登錄]
          2007-12-22 00:34 | johnsdilon
          我是blogjava的新用戶,想問個弱弱的問題:在blogjava上發(fā)布文章時,怎么發(fā)布代碼,實(shí)現(xiàn)函數(shù)節(jié)點(diǎn)可伸縮。

          先謝過了哈!  回復(fù)  更多評論
            
          # re: java創(chuàng)建TXT文件并進(jìn)行讀、寫、修改操作
          2007-12-22 12:39 | 凌晨風(fēng)
          @johnsdilon
          插入代碼就可以了啊  回復(fù)  更多評論
            
          # re: java創(chuàng)建TXT文件并進(jìn)行讀、寫、修改操作
          2007-12-22 15:22 | 冷面閻羅
          我之前也寫過一個程序,實(shí)現(xiàn)的功能比這個多了。
          不過感覺寫這樣的程序還是vc比較方便  回復(fù)  更多評論
            
          # re: java創(chuàng)建TXT文件并進(jìn)行讀、寫、修改操作[未登錄]
          2007-12-22 21:37 | johnsdilon
          謝謝,呵呵  回復(fù)  更多評論
            
          # re: java創(chuàng)建TXT文件并進(jìn)行讀、寫、修改操作
          2007-12-23 10:07 | aSTAmEI
          不錯不錯
          要是加上文字編碼的相關(guān)部分就好了,
          不然各種系統(tǒng)編碼下會有問題的
            回復(fù)  更多評論
            
          # re: java創(chuàng)建TXT文件并進(jìn)行讀、寫、修改操作
          2007-12-24 08:37 | kenzhang
          @冷面閻羅
          VC,java,各有千秋!呵呵  回復(fù)  更多評論
            
          # re: java創(chuàng)建TXT文件并進(jìn)行讀、寫、修改操作
          2007-12-24 08:41 | kenzhang
          @aSTAmEI
          這個文件只是用來存儲數(shù)字和英文,沒有存儲中文的需求,所以就沒做。
          呵呵,慚愧的是這個程序好像寫入中文后,讀出來的是亂碼。
            回復(fù)  更多評論
            
          # re: java創(chuàng)建TXT文件并進(jìn)行讀、寫、修改操作[未登錄]
          2008-01-10 11:59 | 樂樂
          真好人啊  回復(fù)  更多評論
            
          # re: java創(chuàng)建TXT文件并進(jìn)行讀、寫、修改操作
          2008-07-29 00:23 | wen870105@163.com
          好像流沒有關(guān)閉吧
          呵呵  回復(fù)  更多評論
            
          # re: java創(chuàng)建TXT文件并進(jìn)行讀、寫、修改操作
          2008-08-23 14:44 | tom_jack
          這樣修改好像挺費(fèi)資源的,如果文件非常的大,然而僅僅是為了修改幾個單詞,那豈不是讀半天,能有直接定位的辦法么  回復(fù)  更多評論
            
          # re: java創(chuàng)建TXT文件并進(jìn)行讀、寫、修改操作
          2008-08-29 00:40 | 風(fēng)葉
          還有2個流沒關(guān)閉 不會有事吧 ??  回復(fù)  更多評論
            
          # re: java創(chuàng)建TXT文件并進(jìn)行讀、寫、修改操作[未登錄]
          2008-12-25 09:09 | ls
          謝謝  回復(fù)  更多評論
            
          # re: java創(chuàng)建TXT文件并進(jìn)行讀、寫、修改操作
          2012-02-20 10:55 | jurs
          挺了  回復(fù)  更多評論
            
          # re: java創(chuàng)建TXT文件并進(jìn)行讀、寫、修改操作
          2013-04-28 13:12 | 本人純屬虛構(gòu)
          FileOutputStream fos = new FileOutputStream(file);
          PrintWriter pw = new PrintWriter(fos);
          pw.write(buf.toString().toCharArray());
          pw.flush();
          pw.close();


          fos 沒關(guān)閉。
          操作頻繁的東西 這樣的細(xì)節(jié)不注意 會出大問題  回復(fù)  更多評論
            
          # re: java創(chuàng)建TXT文件并進(jìn)行讀、寫、修改操作
          2014-01-13 22:33 | sfd
          # re: java創(chuàng)建TXT文件并進(jìn)行讀、寫、修改操作[未登錄]
          2014-08-05 16:40 | 小熊
          mm.writeBytes(filein);
          改成 mm.write(filein.getBytes());亂碼 就解決了  回復(fù)  更多評論
            

          只有注冊用戶登錄后才能發(fā)表評論。


          網(wǎng)站導(dǎo)航:
           
          主站蜘蛛池模板: 汤原县| 舞钢市| 苏尼特左旗| 临夏市| 绿春县| 河北区| 临江市| 德清县| 武邑县| 新昌县| 定州市| 馆陶县| 阳城县| 姚安县| 雷波县| 睢宁县| 鹤庆县| 周宁县| 沙河市| 长沙县| 恭城| 鹰潭市| 佛冈县| 旌德县| 蒙自县| 白城市| 沈丘县| 通江县| 尚志市| 那曲县| 如东县| 高淳县| 沂源县| 乌兰县| 博客| 天水市| 麟游县| 邢台市| 同心县| 汨罗市| 金川县|