コード例 #1
0
ファイル: Utilities.java プロジェクト: RamonReis/Ramon-s
  public static void uneArquivos(
      RandomAccessFile arg0, RandomAccessFile arg1, FileOutputStream arg3) throws Exception {
    DataOutputStream dOut = new DataOutputStream(arg3);
    Endereco end0 = new Endereco();
    Endereco end1 = new Endereco();
    end0.leEndereco(arg0);
    end1.leEndereco(arg1);
    // System.out.println(end1.getCep());
    while (arg0.getFilePointer() < arg0.length() || arg1.getFilePointer() < arg1.length()) {

      // System.out.println(Integer.parseInt(end0.getCep()));
      if (arg1.getFilePointer() == arg1.length() && arg0.getFilePointer() != arg0.length()) {
        while (arg0.getFilePointer() < arg0.length()) {
          end0.leEndereco(arg0);
          dOut.write(end0.getLogradouroB());
          dOut.write(end0.getBairroB());
          dOut.write(end0.getCidadeB());
          dOut.write(end0.getEstadoB());
          dOut.write(end0.getSiglaB());
          dOut.write(end0.getCepB());
          dOut.writeByte(0);
          dOut.writeBytes("\n");
        }
        break;
      } else if (arg0.getFilePointer() == arg0.length() && arg1.getFilePointer() != arg1.length()) {
        while (arg1.getFilePointer() < arg1.length()) {
          end1.leEndereco(arg1);
          dOut.write(end1.getLogradouroB());
          dOut.write(end1.getBairroB());
          dOut.write(end1.getCidadeB());
          dOut.write(end1.getEstadoB());
          dOut.write(end1.getSiglaB());
          dOut.write(end1.getCepB());
          dOut.writeByte(0);
          dOut.writeBytes("\n");
        }
        break;
      } else if (end0.getCep().compareTo(end1.getCep()) <= 0) {
        dOut.write(end0.getLogradouroB());
        dOut.write(end0.getBairroB());
        dOut.write(end0.getCidadeB());
        dOut.write(end0.getEstadoB());
        dOut.write(end0.getSiglaB());
        dOut.write(end0.getCepB());
        dOut.writeByte(0);
        dOut.writeBytes("\n");
        end0.leEndereco(arg0);
      } else if (end0.getCep().compareTo(end1.getCep()) > 0) {
        dOut.write(end1.getLogradouroB());
        dOut.write(end1.getBairroB());
        dOut.write(end1.getCidadeB());
        dOut.write(end1.getEstadoB());
        dOut.write(end1.getSiglaB());
        dOut.write(end1.getCepB());
        dOut.writeByte(0);
        dOut.writeBytes("\n");
        end1.leEndereco(arg1);
      } else System.out.println("Erro!");
    }
    arg3.close();
  }
コード例 #2
0
ファイル: Utilities.java プロジェクト: RamonReis/Ramon-s
  public static void divideEntrada(RandomAccessFile arg0) throws Exception {
    ArrayList<Endereco> array = new ArrayList<Endereco>();
    FileOutputStream saida = null;
    int k = 0;
    long valorArqEntrBytes = arg0.length();
    long numeroRegistros =
        (valorArqEntrBytes
            / (298 + 2)); // 298 - cada registro / 2 - 1 byte em branco + 1 byte quebra de linha
    int numeroRegArqSaida = (int) numeroRegistros / 8;
    int contadorAux = numeroRegArqSaida;

    // System.out.println(f.length());
    while (arg0.getFilePointer() < arg0.length()) // para Detectar EOF
    {
      // System.out.println(f.getFilePointer());
      contadorAux = numeroRegArqSaida;
      Endereco e = new Endereco();
      e.leEndereco(arg0);
      array.add(e);
      if (array.size() == numeroRegArqSaida) {
        Collections.sort(array, new ComparadorDeEnderecos());

        for (int i = 0; i < contadorAux; i++) {
          if (i == 0) {
            saida = new FileOutputStream("saidaN0ID" + String.valueOf(k++) + ".dat");
            if (numeroRegistros % 2 != 0)
              contadorAux++; // Se o numero total de registros do arquivo inicial for ímapr, o
            // primeiro arquivo de saída terá um registro a mais.
          }
          DataOutputStream dout = new DataOutputStream(saida);
          dout.write(array.get(i).getLogradouroB());
          dout.write(array.get(i).getBairroB());
          dout.write(array.get(i).getCidadeB());
          dout.write(array.get(i).getEstadoB());
          dout.write(array.get(i).getSiglaB());
          dout.write(array.get(i).getCepB());
          dout.writeBytes("\n");
          /*
          dout.writeBytes(array.get(i).getLogradouro());
          dout.writeBytes(array.get(i).getBairro());
          dout.writeBytes(array.get(i).getCidade());
          dout.writeBytes(array.get(i).getEstado());
          dout.writeBytes(array.get(i).getSigla());
          dout.writeBytes(array.get(i).getCep());
          */
        }
        array.clear();
      }
    }
    if (array.size() != 0) {
      int l = 0;
      saida = new FileOutputStream("saida" + String.valueOf(k++) + ".dat");
      Collections.sort(array, new ComparadorDeEnderecos());
      while (l != array.size()) {
        DataOutputStream dout = new DataOutputStream(saida);
        dout.write(array.get(l).getLogradouroB());
        dout.write(array.get(l).getBairroB());
        dout.write(array.get(l).getCidadeB());
        dout.write(array.get(l).getEstadoB());
        dout.write(array.get(l).getSiglaB());
        dout.write(array.get(l).getCepB());
        dout.writeByte(0);
        dout.writeBytes("\n");
        /*
        dout.writeBytes(array.get(l).getLogradouro());
        dout.writeBytes(array.get(l).getBairro());
        dout.writeBytes(array.get(l).getCidade());
        dout.writeBytes(array.get(l).getEstado());
        dout.writeBytes(array.get(l).getSigla());
        dout.writeBytes(array.get(l).getCep());
        */
        l++;
      }
      array.clear();
    } else System.out.println("Error!");
    arg0.close();
  }