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

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

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

    J2ME 技術的學習與實踐者

    [導入]字段輸出流FieldOutputStream


    網站: JavaEye  作者: iwinyeah  鏈接:http://iwinyeah.javaeye.com/blog/174644  發表時間: 2008年03月21日

    聲明:本文系JavaEye網站發布的原創博客文章,未經作者書面許可,嚴禁任何網站轉載本文,否則必將追究法律責任!

    我的FieldOutputStream繼承了DataOutputStream,這樣就可以只更改很少量的代碼就實現了既支持原生格式又支持文本方式輸出了,稍候一段時間手機理財將可以實現備份和恢復(文本格式)功能了.
    package util;
    /**
     * --------------------------------------------------
     * 字段輸出流
     * --------------------------------------------------
     * 從DataOutputStream繼承
     * 主要增加了向輸出流寫入文本格式的數據字段的能力
     * 文本格式流將由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;
    	}
    
    	// 接著寫入的是否最后一個字段
    	// 寫第一個字段前以參數false調用它
    	// 寫最后一個字段前以參數false調用它
    	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 基礎知識

    主站蜘蛛池模板: 亚洲冬月枫中文字幕在线看| 亚洲五月综合缴情在线观看| 亚洲一本之道高清乱码| 91在线视频免费观看| 亚洲日韩中文字幕在线播放| 成人网站免费大全日韩国产| 亚洲国产高清精品线久久| 激情吃奶吻胸免费视频xxxx| 免费乱码中文字幕网站| 国产成人久久精品亚洲小说| 国产区卡一卡二卡三乱码免费| 亚洲AV无码成人精品区狼人影院| 在线精品免费视频无码的| 亚洲a∨国产av综合av下载| 国产免费无遮挡精品视频| 国产AV无码专区亚洲AV蜜芽| heyzo亚洲精品日韩| 一级视频免费观看| 亚洲精品无码精品mV在线观看| a毛片免费在线观看| 老司机亚洲精品影院| 99在线精品免费视频九九视| 九九全国免费视频| 亚洲熟女乱综合一区二区| 一级做受视频免费是看美女 | 亚洲中文字幕无码不卡电影| 黄视频在线观看免费| 亚洲美女人黄网成人女| 妞干网免费视频观看| 四虎国产精品永免费| 亚洲成AV人片一区二区密柚| 免费观看国产网址你懂的| 亚洲丶国产丶欧美一区二区三区| 亚洲国产aⅴ综合网| 精品无码国产污污污免费网站 | 图图资源网亚洲综合网站| 成年人免费的视频| 色屁屁www影院免费观看视频| 亚洲AV无码乱码国产麻豆| 免费国产黄线在线观看| 乱淫片免费影院观看|