<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 閱讀(207) 評論(0)  編輯  收藏 所屬分類: Java 基礎(chǔ)知識

    主站蜘蛛池模板: 在线看片v免费观看视频777| 国产成人亚洲精品影院| 激情小说亚洲色图| 中文字幕精品亚洲无线码一区 | 亚洲大片免费观看| 亚洲精品久久无码| 久久亚洲国产中v天仙www| 成年女性特黄午夜视频免费看| 亚洲日韩在线中文字幕综合| 久久亚洲国产成人亚| 成人毛片视频免费网站观看| aa级女人大片喷水视频免费| 亚洲综合丁香婷婷六月香| 久久亚洲国产精品123区| 久久久久国产精品免费免费搜索 | 老色鬼久久亚洲AV综合| 国产精品黄页在线播放免费| 久久久高清日本道免费观看| 亚洲精品伦理熟女国产一区二区| 国产亚洲无线码一区二区| 大学生高清一级毛片免费| 亚洲a一级免费视频| 羞羞视频免费观看| 亚洲国产精品成人久久久| 久久亚洲中文字幕精品一区| 最近2019中文字幕免费看最新| 免费福利在线视频| 污污的视频在线免费观看| 亚洲中文字幕无码一去台湾| 国产亚洲欧洲精品| 免费在线观看黄网站| 99精品全国免费观看视频| 人妻丰满熟妇无码区免费 | 国产午夜影视大全免费观看| 最近2019中文字幕免费大全5| 午夜肉伦伦影院久久精品免费看国产一区二区三区 | 亚洲国产精品VA在线看黑人| 又黄又爽的视频免费看| 97无码免费人妻超级碰碰夜夜| 久久综合国产乱子伦精品免费| 国产大片免费天天看|