有以下几个问题急需要解决: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分左右,如果能够解决的话,全部给你们。
焦急等待中!!
第三个问题利用数据库很简单,但是我这个文件中有几千行数据,差不多有二十列之多,实在不知如何快速写入数据库。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分左右,如果能够解决的话,全部给你们。
焦急等待中!!
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;
}
}看看上面这个小例子, 可以读取文件的里字符, 然后自己把字符转换一下 应该差不多了
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)));
}
}