社区
Java SE
帖子详情
请问java对文件操作中,有没有在文件中插入一些字节,使原数据能后移而不覆盖的方法呀。
xiaofeng3385
2006-02-15 12:17:48
请问java对文件操作中,有没有在文件中插入一些字节,使原数据能后移而不覆盖的方法呀。
...全文
673
18
打赏
收藏
请问java对文件操作中,有没有在文件中插入一些字节,使原数据能后移而不覆盖的方法呀。
请问java对文件操作中,有没有在文件中插入一些字节,使原数据能后移而不覆盖的方法呀。
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
18 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
khhqy
2006-02-16
打赏
举报
回复
哎,这些我都看不懂....呵呵看看,http://khhqy.Lun123.com 我的创业网!
现向全国招骋,主要工作:上网发发电子邮件,聊天等!
27257674
2006-02-15
打赏
举报
回复
如果你想从第十行开始写
最笨的方法
就是采用READLINE
读十次
就到11行了撒
King_Style
2006-02-15
打赏
举报
回复
这样不就向后移了?
-------------
import java.io.*;
class TestPrint{
public static void main(String args[]){
try{
RandomAccessFile rf=new RandomAccessFile("c:/1.txt","rw");
rf.seek(0);//从文件首开始写入
StringBuffer line=new StringBuffer();
int i=0;
while(i<9){
line.append("\n");
i++;
}
rf.writeBytes(line.toString());
rf.writeBytes("2222222222");
rf.close();
}catch(Exception ex){
ex.printStackTrace();
}
}
}
King_Style
2006-02-15
打赏
举报
回复
清问下,假如想往文件的第10行写入,怎么找到这行开始写呀,
------------------------
//从当前起隔9行写入
import java.io.*;
class TestPrint{
public static void main(String args[]){
try{
RandomAccessFile rf=new RandomAccessFile("c:/1.txt","rw");
rf.seek(rf.length());
StringBuffer line=new StringBuffer();
int i=0;
while(i<9){
line.append("\n");
i++;
}
rf.writeBytes(line.toString());
rf.writeBytes("111111111");
rf.close();
}catch(Exception ex){
ex.printStackTrace();
}
}
}
xiaofeng3385
2006-02-15
打赏
举报
回复
回复人: infowain(infowain) ( ) 信誉:100 2006-02-15 09:11:00 得分: 0
1.使用RandomAccessFile
2.要自己把原来的数据向后移。
----------------------------------------
怎么向后移那,这个也是我主要想问的呀
xiaofeng3385
2006-02-15
打赏
举报
回复
blue_afreet(迷茫)
--------------
清问下,假如想往文件的第10行写入,怎么找到这行开始写呀,
blue_afreet
2006-02-15
打赏
举报
回复
FileWriter fw=new FileWriter("FileName", true);
BufferedWriter bw=new BufferedWriter(fw);
bw.write("String");
bw.newLine();
bw.flush();
bw.close();
fw.close();
其中FileName包含了地址和具体的文件名,比如C:/hello.txt;
这段代码可以实现往特定的文本中追加行书写;文本原先的内容不会丢失;也不会介意原文本的内容或行数。
infowain
2006-02-15
打赏
举报
回复
1.使用RandomAccessFile
2.要自己把原来的数据向后移。
blue_afreet
2006-02-15
打赏
举报
回复
晕。好像写错了。第一句代码应该是 : FileWriter fw=new FileWriter("FileName", true);
xiaofeng3385
2006-02-15
打赏
举报
回复
我用RandomAccessFile
文件的特定行写入信息,但写入字节数比原来行的多时会覆盖下一行的数据,
这个能解决么?
xiaofeng3385
2006-02-15
打赏
举报
回复
回复人: nirendao(黑山老猫) ( ) 信誉:100 2006-02-15 08:30:00 得分: 0
当午给出的是在末尾添加,不合楼主的意思啊。
用最原始的方法来做未必就会麻烦,楼主可以考虑把原文件都读出到一个缓存中,然后再做处理。
-----------------------------------------------------
把原文件都读出到一个缓存中,处理后还要全重新写回文件么,那样会很耗时,
blue_afreet
2006-02-15
打赏
举报
回复
FileWriter fw=new FileWriter("FileName", false);
BufferedWriter bw=new BufferedWriter(fw);
bw.write("String");
bw.newLine();
bw.flush();
bw.close();
fw.close();
其中FileName包含了地址和具体的文件名,比如C:/hello.txt;
这段代码可以实现往特定的文本中追加行书写;文本原先的内容不会丢失;
King_Style
2006-02-15
打赏
举报
回复
BufferedWriter out = new BufferedWriter(new FileWriter("text.txt",true));
byte bText[] = new byte[11];
for(int i = 0;i<10;i++)
bText[i] =(byte)i;
out.write(bText);
out.flush();
out.close();
低调的小青蛙
2006-02-15
打赏
举报
回复
"使原数据能后移" 这是不能自动做到的。
对于一般的数据库软件来说,他的记录也采用定长的办法,修改数据都避免产生需要 "后移",而把一些 text 类型的变长型数据放到另外一个单独的区域处理。
执假以为真
2006-02-15
打赏
举报
回复
当午给出的是在末尾添加,不合楼主的意思啊。
用最原始的方法来做未必就会麻烦,楼主可以考虑把原文件都读出到一个缓存中,然后再做处理。
masse
2006-02-15
打赏
举报
回复
try {
File f = new File("filename");
RandomAccessFile raf = new RandomAccessFile(f, "rw");
// Read a character
char ch = raf.readChar();
// Seek to end of file
raf.seek(f.length());
// Append to the end
raf.writeChars("aString");
raf.close();
} catch (IOException e) {
}
低调的小青蛙
2006-02-15
打赏
举报
回复
搂主的想法是,某一行超过原来的内容,后边的自动往后移动。这种想法是没办法实现的,只能自己往后移。
搂主担心,"那样会很耗时"。其实,就算是系统提供这样的功能,那么这个功能用起来一样很耗时。因此,避免超过原来的长度。
前面我提到,对于一般的数据库软件来说,他的记录也采用定长的办法,修改数据都避免产生需要 "后移",而把一些 text 类型的变长型数据放到另外一个单独的区域处理。
xiaofeng3385
2006-02-15
打赏
举报
回复
关键是在于在第10行写数据怎样不会覆盖下行 的数据,
RandomAccessFile 没有writeln类似的方法吧,
用BufferedWriter 好像又找不到行数写
怎么办呀,
python 在
文件
头加入_利用Python在一个
文件
的头部
插入
数据
的实例
利用Python在一个
文件
的头部
插入
数据
的实例在一个
文件
的末尾追加
数据
是很常用的。在使用过程
中
应该都比较熟悉不会出现什么错误。但是往一个
文件
头部
插入
数据
可能或多或少会碰到一些问题。看似正确的错误代码很多代码...
数据
结构与算法学习(一):线性表之数组的
插入
与删除(
Java
实现)
文章目录一、数组介绍1、线性表2、连续的内存空间和类型相同的
数据
二、利用数组实现
插入
操作
及相应的时间复杂度分析1、数组原本有顺序,
插入
后需要继续保持数组有序2、直接在数组末尾
插入
3、在数组指定位置
插入
三、...
Java
-String、StringBuilder、
Java
的常量池及
字节
码
文件
分析案例
String、StringBuilder、
Java
常量池及
字节
码
文件
分析。
java
byte数组
插入
算法
在
java
开发
中
经常使用到
插入
数组,比如在某个元素后添加新元素,并将之后的元素
后移
,下面为
插入
数组的例子 byte[] msgTi = new byte[]{0x7e, 0x03, 0x7d, 0x00, 0x7e, 0x03, 0x7d}; Log.e("转义前", Arrays....
Java
中
RandomAccessFile用法
2、将
文件
中
的
字节
数据
,当作数组,用下标访问指定位置的
字节
值 RandomAccessFile 既可以读取
文件
内容,也可以向
文件
输出
数据
。同时,RandomAccessFile 支持“随机访问”的方式,程序快可以直接跳转到
文件
的任意...
Java SE
62,614
社区成员
307,327
社区内容
发帖
与我相关
我的任务
Java SE
Java 2 Standard Edition
复制链接
扫一扫
分享
社区描述
Java 2 Standard Edition
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章