<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 基礎知識

    主站蜘蛛池模板: 一个人看的免费高清视频日本| 久久这里只精品99re免费| 亚洲第一视频在线观看免费| 久久亚洲免费视频| 亚洲gv猛男gv无码男同短文| 亚洲一卡二卡三卡| A国产一区二区免费入口| 免费看黄视频网站| 亚洲午夜无码片在线观看影院猛| 亚洲日产2021三区在线| 国产精品青草视频免费播放| 亚洲无av在线中文字幕| 亚洲Av无码国产一区二区| 免费在线视频你懂的| 亚洲精品无码久久久久sm| 边摸边脱吃奶边高潮视频免费| 四虎1515hh永久久免费| 久久精品国产亚洲AV忘忧草18 | 亚洲va久久久噜噜噜久久天堂 | 久久国产乱子伦精品免费看| 亚洲欧洲国产精品你懂的| 色多多免费视频观看区一区| 亚洲男人的天堂在线va拉文| 亚洲AV永久无码精品网站在线观看| 免费看国产精品麻豆| 亚洲人成网站色7799| 99免费在线观看视频| 在线观看亚洲精品国产| 国产亚洲精品美女久久久久| 在线a亚洲v天堂网2018| 亚洲AV无码一区二区三区牛牛| 国产精品网站在线观看免费传媒| 中文字幕一精品亚洲无线一区| 国产婷婷成人久久Av免费高清 | 欧美亚洲精品一区二区| 国产亚洲一区二区在线观看| 久久久久久免费视频| 永久免费无码网站在线观看个| 亚洲精品高清一二区久久| 99精品热线在线观看免费视频| 激情小说亚洲图片|