当前位置: 技术问答>java相关
文件随机读写的问题,在线给分!
来源: 互联网 发布时间:2015-06-15
本文导语: 想打开一个文件,对文件进行随机修改(在特定位置增加,修改一些内容),请问用什么好? 我用RandomAccessFile类的实例调用writeBytes()方法时,写入的新的字串将文件原来部分覆盖。调用setLength()方法增加文件的长...
想打开一个文件,对文件进行随机修改(在特定位置增加,修改一些内容),请问用什么好?
我用RandomAccessFile类的实例调用writeBytes()方法时,写入的新的字串将文件原来部分覆盖。调用setLength()方法增加文件的长度只在文件末尾增加了空格,并没有把当前指针后的文件内容后移。
另外,我想做一个文件拷贝的函数,把一个文件拷贝生成一个新文件。请问调什么IO方法效率最高?
谢谢。
我用RandomAccessFile类的实例调用writeBytes()方法时,写入的新的字串将文件原来部分覆盖。调用setLength()方法增加文件的长度只在文件末尾增加了空格,并没有把当前指针后的文件内容后移。
另外,我想做一个文件拷贝的函数,把一个文件拷贝生成一个新文件。请问调什么IO方法效率最高?
谢谢。
|
建一个字符串缓存(StringBuffer),读取的内容放到这个缓存中,操作完毕后,再删除源文件,重新写入就可以了.
|
RandomAccessFile 可以随机读取
public class RandomAccessFile类
{
public static void main(String[] args)
{RandomAccessFile in_and_out=null;
int data[]={124,389,33,256,-90,34,21,7,100,25};
try
{in_and_out=new RandomAccessFile ("write_in_here.txt","rw");
}
catch(FileNotFoundException e)
{System.out .println ("??????");
}
catch(IOException e)
{System.out .println ("??????");
}
try
{for(int i=0;i=0;i--)
{in_and_out.seek (i*4);
System.out .print (","+in_and_out.readInt ());
}
in_and_out.close ();
}
catch(IOException e)
{System.out .println ("??????");
}
}
}
这是一个例子,你用的照得尽管用。(绝不追究版权问题^_^)
public class RandomAccessFile类
{
public static void main(String[] args)
{RandomAccessFile in_and_out=null;
int data[]={124,389,33,256,-90,34,21,7,100,25};
try
{in_and_out=new RandomAccessFile ("write_in_here.txt","rw");
}
catch(FileNotFoundException e)
{System.out .println ("??????");
}
catch(IOException e)
{System.out .println ("??????");
}
try
{for(int i=0;i=0;i--)
{in_and_out.seek (i*4);
System.out .print (","+in_and_out.readInt ());
}
in_and_out.close ();
}
catch(IOException e)
{System.out .println ("??????");
}
}
}
这是一个例子,你用的照得尽管用。(绝不追究版权问题^_^)
|
当然会件后面的字符覆盖!
你要是不copy一份的话是无法办到的!
除非用数据库!
用xml其实也是把内容解析后copy到ram的,
但对用户是透明的!
可能你用起来感觉会爽一点!
你要是不copy一份的话是无法办到的!
除非用数据库!
用xml其实也是把内容解析后copy到ram的,
但对用户是透明的!
可能你用起来感觉会爽一点!
|
当然会件后面的字符覆盖!
你要是不copy一份的话是无法办到的!
除非用数据库!
用xml其实也是把内容解析后copy到ram的,
但对用户是透明的!
可能你用起来感觉会爽一点!
你要是不copy一份的话是无法办到的!
除非用数据库!
用xml其实也是把内容解析后copy到ram的,
但对用户是透明的!
可能你用起来感觉会爽一点!
|
可以2G ,就是int的范围!
哪要看你做怎样一个软件了!
没字体的话,应该是这样!
哪要看你做怎样一个软件了!
没字体的话,应该是这样!
|
可以通过seek()方法设置文件指针位置