• Mapreduce实战:序列化与反序列化 int,int[],string[][]


    最新一期《中国IT产业发展报告》在2016中国(深圳)IT领袖峰会上正式发布,数字中国联合会常务理事李颖称。中国IT产业完毕了从要素驱动向效率驱动的过渡,眼下正在由效率驱动向创新驱动发展。

    //定义要序列化的类型
      protected int[] splits;//int 数组 
      protected String[][] splitss;// 二维数组
      protected int n1; //int 
       
      public void cFPoints1(Vector<Text2> sample, int n) {
        String[]strs = sample.toString().split (",");
        int numSplits = strs.length/3;
        //对数组进行长度设定
        this.splits = new int[numSplits]; 
        this.splitss = new String[numSplits][3];
         //赋值
        this.n1 = n;
        for (int i =0; i < sample.size();i++){
        	String  string = sample.get(i).toString();
        	 String[]strs1 = string.toString().split (",");
        	this.splits[i] = Integer.parseInt(strs1[0]);
        	this.splitss[i][0] = strs1[0]; 
    	this.splitss[i][1] = strs1[1];
    	this.splitss[i][2] = strs1[2];
        }  
        
      }   
    <span style="font-family: Arial, Helvetica, sans-serif;">//注意序列化和反序列化的顺序要一致</span>
      @Override
      public void write(DataOutput out) throws IOException { 
        //序列化int类型</span>
        out.writeInt(n1); 
        //序列化int数组</span>
        out.writeInt(splits.length);
        ByteBuffer bbuffer = ByteBuffer.allocate(splits.length * 4);
        for (int split : splits)
          bbuffer.putInt(split);
        out.write(bbuffer.array(), bbuffer.arrayOffset(), bbuffer.position());
         //序列化string数组</span>
        out.writeInt(splitss.length);       
        for (String[] is2 : splitss) {
    		for (String i : is2) {
    			Text.writeString(out, i);
    		}
        } 
         
      }
    
      @Override
      public void readFields(DataInput in) throws IOException { 
        //反序列化int类型</span>
        n1 = in.readInt(); 
         //反序列化int数组</span>
        splits = new int[in.readInt()];
        byte[] buffer = new byte[splits.length * 4];
        in.readFully(buffer);
        ByteBuffer bbuffer = ByteBuffer.wrap(buffer);
        for (int i = 0; i < splits.length; i++)
          splits[i] = bbuffer.getInt();
        //反序列化string数组</span>
        splitss = new String[in.readInt()][3];  
        for (int i = 0; i < splitss.length; i++)
        	 for (int k = 0; k < splitss[0].length; k++) {  
        		 splitss[i][k] = Text.readString(in); 
        	 }
      }  
    }


  • 相关阅读:
    ZTUnity Profiler概述及Profiler window 说明
    利用反射球实现镜面效果
    (乱入)FingerGesture
    生成万花筒效果并截图
    (六)添加adb命令
    超时处理
    判断是否存在UI被触摸
    UI控件拖动失效
    (五)Unity插件生成
    (四)适配器Adapter
  • 原文地址:https://www.cnblogs.com/wzjhoutai/p/7207557.html
Copyright © 2020-2023  润新知