Android InputStream Read ReadArrayOfStringPairs( FileInputStream stream)

Here you can find the source of ReadArrayOfStringPairs( FileInputStream stream)

Description

Read Array Of String Pairs

License

Open Source License

Declaration

public static ArrayList<Pair<String, String>> ReadArrayOfStringPairs(
            FileInputStream stream) throws IOException 

Method Source Code

/*******************************************************************************
 * Copyright (C) 2010-2011 Dmitriy Nesterov
 *
 * This program is free software: you can redistribute it and/or modify
 * it under the terms of the GNU General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.//from   w  w w.j a  v a  2 s . c  om
 *
 * This program is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU General Public License for more details.
 *
 * You should have received a copy of the GNU General Public License
 * along with this program.  If not, see <http://www.gnu.org/licenses/>.
 ******************************************************************************/

import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.util.ArrayList;

public class Main{
    public static ArrayList<Pair<String, String>> ReadArrayOfStringPairs(
            FileInputStream stream) throws IOException {
        int size = ReadInt(stream);
        ArrayList<Pair<String, String>> result = new ArrayList<Pair<String, String>>(
                size);

        for (int i = 0; i < size; ++i) {
            String first = ReadString(stream);
            String second = ReadString(stream);
            Pair<String, String> pair = new Pair<String, String>(first,
                    second);

            result.add(pair);
        }

        return result;
    }
    public static int ReadInt(FileInputStream stream) throws IOException {
        byte[] bytes = new byte[4];
        if (stream.read(bytes) != 4) {
            //TODO : Throw error and handle it.
        }

        return BytesToInt(bytes);
    }
    public static String ReadString(FileInputStream stream)
            throws IOException {
        int length = ByteUtils.ReadInt(stream);
        byte[] buffer = new byte[length];
        if (stream.read(buffer) != length) {
            //TODO : Throw error and handle it.
        }

        return new String(buffer);
    }
    public static int BytesToInt(byte[] value) {
        int result = 0;

        for (int i = 0; i < 4; i++) {
            int shift = (4 - 1 - i) * 8;
            result += (value[i] & 0x000000FF) << shift;
        }

        return result;
    }
}

Related

  1. ReadInt(FileInputStream stream)
  2. ReadString(FileInputStream stream)
  3. readContents(InputStream input, String encoding)
  4. readFile(InputStream input)