<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    J2ME 技術(shù)的學習與實踐者

    [導入]字段輸出流FieldOutputStream


    網(wǎng)站: JavaEye  作者: iwinyeah  鏈接:http://iwinyeah.javaeye.com/blog/174644  發(fā)表時間: 2008年03月21日

    聲明:本文系JavaEye網(wǎng)站發(fā)布的原創(chuàng)博客文章,未經(jīng)作者書面許可,嚴禁任何網(wǎng)站轉(zhuǎn)載本文,否則必將追究法律責任!

    我的FieldOutputStream繼承了DataOutputStream,這樣就可以只更改很少量的代碼就實現(xiàn)了既支持原生格式又支持文本方式輸出了,稍候一段時間手機理財將可以實現(xiàn)備份和恢復(文本格式)功能了.
    package util;
    /**
     * --------------------------------------------------
     * 字段輸出流
     * --------------------------------------------------
     * 從DataOutputStream繼承
     * 主要增加了向輸出流寫入文本格式的數(shù)據(jù)字段的能力
     * 文本格式流將由TAB分隔字段,回車換行符分隔記錄
     * --------------------------------------------------
     * 
     * @author iwinyeah 李永超
     * @version 1.0.0
     * */
    
    import java.io.DataOutputStream;
    import java.io.IOException;
    import java.io.OutputStream;
    
    public class FieldOutputStream extends DataOutputStream {
    	public final static int BIN_MODE = 0;
    
    	public final static int TXT_MODE = 1;
    
    	private final static byte[] fieldSplit = {'\t'};
    
    	private final static byte[] recordSplit = {'\r','\n'};
    
    	private int mode;
    	
    	private boolean nextEnd = false;
    
    	public FieldOutputStream(OutputStream out, int mode) {
    		super(out);
    		this.mode = mode;
    	}
    
    	// 接著寫入的是否最后一個字段
    	// 寫第一個字段前以參數(shù)false調(diào)用它
    	// 寫最后一個字段前以參數(shù)false調(diào)用它
    	public void setNextEnd(boolean end){
    		nextEnd = end;
    	}
    	
    	public void putBoolean(boolean value) throws IOException {
    		if (mode == 0) {
    			writeBoolean(value);
    		} else {
    			out.write(value ? '1' : '0');
    			out.write(nextEnd ? recordSplit : fieldSplit);
    		}
    	}
    
    	public void putByte(byte value) throws IOException {
    		if (mode == 0) {
    			writeByte(value);
    		} else {
    			out.write(String.valueOf(value).getBytes("UTF-8"));
    			out.write(nextEnd ? recordSplit : fieldSplit);
    		}
    	}
    
    	public void putShort(short value) throws IOException {
    		if (mode == 0) {
    			writeShort(value);
    		} else {
    			out.write(String.valueOf(value).getBytes("UTF-8"));
    			out.write(nextEnd ? recordSplit : fieldSplit);
    		}
    	}
    
    	public void putInt(int value) throws IOException {
    		if (mode == 0) {
    			writeInt(value);
    		} else {
    			out.write(String.valueOf(value).getBytes("UTF-8"));
    			out.write(nextEnd ? recordSplit : fieldSplit);
    		}
    	}
    
    	public void putLong(long value) throws IOException {
    		if (mode == 0) {
    			writeLong(value);
    		} else {
    			out.write(String.valueOf(value).getBytes("UTF-8"));
    			out.write(nextEnd ? recordSplit : fieldSplit);
    		}
    	}
    
    	public void putString(String value) throws IOException {
    		if (mode == 0) {
    			if (value == null) {
    				writeByte(0);
    			} else {
    				writeByte(1);
    				writeUTF(value);
    			}
    		} else {
    			if(value != null){
    				byte[] b = value.getBytes("UTF-8");
    				for(int i = 0; i < b.length; i++){
    					if(b[i] == '\n'){
    						out.write('\\');
    						out.write('n');
    					}
    					else if(b[i] == '\r'){
    						out.write('\\');
    						out.write('r');
    					}
    					else if(b[i] == '\t'){
    						out.write('\\');
    						out.write('t');}
    					else if(b[i] == '\b'){
    						out.write('\\');
    						out.write('b');}
    					else if(b[i] == '\f'){
    						out.write('\\');
    						out.write('f');
    					}else{
    						out.write(b[i]);
    					}
    				}				
    			}
    			out.write(nextEnd ? recordSplit : fieldSplit);
    		}
    	}
    
    }
    


    讀回請參看另一篇:字段輸入流FieldInputStream.http://iwinyeah.javaeye.com/admin/blogs/174645
    本文的討論也很精彩,瀏覽討論>>


    JavaEye推薦




    文章來源:http://iwinyeah.javaeye.com/blog/174644

    posted on 2008-03-21 22:16 iwinyeah 閱讀(218) 評論(0)  編輯  收藏 所屬分類: Java 基礎(chǔ)知識

    主站蜘蛛池模板: 久久亚洲AV成人无码国产| 国产亚洲精品国产| 亚洲国产精品无码久久久久久曰| 久久久久国产亚洲AV麻豆| 久久精品国产亚洲av高清漫画| 天黑黑影院在线观看视频高清免费 | 亚洲性天天干天天摸| 亚洲性色AV日韩在线观看| 无遮挡呻吟娇喘视频免费播放| 久久久久久影院久久久久免费精品国产小说 | 在线亚洲97se亚洲综合在线| 亚洲人成人网站18禁| 24小时日本电影免费看| 亚洲人成无码www久久久| 亚洲中文字幕一二三四区| 免费无码肉片在线观看| 亚洲一级二级三级不卡| 久久国产免费观看精品3| 伊伊人成亚洲综合人网7777| 97国免费在线视频| 亚洲美女免费视频| 在线观看免费播放av片| 亚洲国产综合久久天堂| 亚洲AV无码国产精品永久一区| 91久久成人免费| 亚洲av综合av一区| 三年片在线观看免费| 亚洲日本乱码一区二区在线二产线| 18禁超污无遮挡无码免费网站 | 久久狠狠爱亚洲综合影院| 久9热免费精品视频在线观看| 亚洲成人网在线播放| 免费一级做a爰片久久毛片潮喷| 在线精品亚洲一区二区| 亚洲av成人一区二区三区在线观看| 国产亚洲欧美在线观看| 国产男女性潮高清免费网站| 亚洲av永久无码天堂网| 亚洲男人的天堂www| 久久久久国产精品免费网站| 亚洲一区二区三区写真 |