有以下几个问题急需要解决:1、一个文本文件cdma.txt,经转换以二进制或十六进制,八进制也行,存储于另一个文本binary.txt中,用Java如何写??2、将此binary.txt文件经读取后再次转换成原有文件cdma.txt中的字符格式,输出存储于cdma2.txt文件中,又如何写??3、在cdma2.txt中,例如下面所示,根据最后一列判断,求出所有大于35的所有行的信息,并把它输出到cdma3.txt中,如何写??
  第三个问题利用数据库很简单,但是我这个文件中有几千行数据,差不多有二十列之多,实在不知如何快速写入数据库。SITEID SITE NAME  LONGITUDE  LATITUDE     CELL       NAME    BID NID SID PN
3297 淳安安阳 118.8255556 29.42083333 3297_1 淳安 4 14121 252 31
3298 淳安安阳上悟 118.8633333 29.39611111 3298_1 淳安 4 14121 27
3299 淳安白马乡 118.7172222 29.23861111 3299_1 淳安 4 14121 27
3300 淳安茶厂 119.0472222 29.61888889 3300_1 淳安 4 14121 231 15
3301 淳安城区 119.0330556 29.60638889 3301_1 淳安 4 14121 6 35
3301 淳安城区 119.0330556 29.60638889 3301_2 淳安 4 14121 174 35
3301 淳安城区 119.0330556 29.60638889 3301_3 淳安 4 14121 342 35
3302 淳安大市 118.7458333 29.40416667 3302_1 淳安 4 14121 138 57实际上,我现在的文件是最后的结果 即文本文件cdma.txt,但是需要它的以二进制字符存储的文件binary.txt,询问了老师,他也没有给出答案,实在不知从何入手,前辈给些指点,万分感谢,我现在的可用分是400分左右,如果能够解决的话,全部给你们。
焦急等待中!!

解决方案 »

  1.   

    package com;import java.io.FileNotFoundException;
    import java.io.IOException;
    import java.io.RandomAccessFile;public class TestRandomAccessFile 
    {
    public static void main(String[] args) throws FileNotFoundException,IOException
    {
    Person p1=new Person("AAA",22);
    Person p2=new Person("BBBBBBBB",23);
    Person p3=new Person("CCCCCCCC",24);
    RandomAccessFile ra=new RandomAccessFile("H:/person.txt","rw");
    ra.write(p1.name.getBytes());
    ra.writeInt(p1.age);

    ra.write(p2.name.getBytes());
    ra.writeInt(p2.age);

    System.out.println("---------------"+p3.name);
    ra.write(p3.name.getBytes());
    ra.writeInt(p3.age);
    ra.close();

    RandomAccessFile raf=new RandomAccessFile("H:/person.txt","r");
    raf.skipBytes(12);
    System.out.println("personBBB inf====>>");
    String str="";
    for(int i=0;i<8;i++)
    {
    str=str+(char)raf.readByte();
    }
    System.out.println("name="+str);
    System.out.println("age="+raf.readInt());

    System.out.println("personAAA inf====>>");
    raf.seek(0);
    str="";
    for(int i=0;i<8;i++)
    {
    str=str+(char)raf.readByte();
    }
    System.out.println("name="+str);
    System.out.println("age="+raf.readInt());

    System.out.println("personCCC inf====>>");
    raf.seek(24);
    str="";
    for(int i=0;i<8;i++)
    {
    str=str+(char)raf.readByte();
    }
    System.out.println("name="+str);
    System.out.println("age="+raf.readInt());

    }

    }
    class Person
    {
    String name;
    int age;
    Person(String name,int age)
    {
    if(name.length()<8)
    {
    while(name.length()<8)
    {
    name=name+" ";
    }
    }
    else
    {
    name=name.substring(0,8);
    }
    this.name=name;
    this.age=age;
    }
    }看看上面这个小例子, 可以读取文件的里字符, 然后自己把字符转换一下 应该差不多了
      

  2.   

    package test;import java.util.StringTokenizer;public class StrToByte {
    public static String byte2hex(byte[] b) // 二进制转字符串
    {
       String hs = "";
       String stmp = "";
       for (int n = 0; n < b.length; n++) {
        stmp = (java.lang.Integer.toHexString(b[n] & 0XFF));
        if (stmp.length() == 1)
         hs = hs + "0" + stmp;
        else
         hs = hs + stmp;
       }
       return hs;
    }public static byte[] hex2byte(String str) { // 字符串转二进制
       if (str == null)
        return null;
       str = str.trim();
       int len = str.length();
       if (len == 0 || len % 2 == 1)
        return null;   byte[] b = new byte[len / 2];
       try {
        for (int i = 0; i < str.length(); i += 2) {
         b[i / 2] = (byte) Integer
           .decode("0x" + str.substring(i, i + 2)).intValue();
        }
        return b;
       } catch (Exception e) {
        return null;
       }
    }public static void main(String[] args) {
       String str = "absadfawegsdcd";
       String result = "";
       result = byte2hex(str.getBytes());
       System.out.println(result);
       System.out.println(new String(hex2byte(result)));
    }
    }