一个I/O操作的问题

jianghg2009 2009-09-28 11:28:12
我只会在文件尾追加内容,谁告诉我怎么在一个文件的开始追加内容呢??谢谢
...全文
141 10 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
leoncg 2009-09-29
  • 打赏
  • 举报
回复
RandomAccessFile
seek(0)
woming66 2009-09-28
  • 打赏
  • 举报
回复
java.io.RandomAccessFile
swandragon 2009-09-28
  • 打赏
  • 举报
回复
用RandomAccessFile这个类
此类的实例支持对随机访问文件的读取和写入
可以控制文件指针的位置
wzw_19850911 2009-09-28
  • 打赏
  • 举报
回复
假如文件里是文本文件
1 打开源文件
2 读取文件中的内容 存放到一个String中
3 将添加的String 和原先的String相加
4 将相加后的String写入源文件
5 关闭源文件

package com.chncloud.utils;

import java.io.BufferedReader;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.InputStreamReader;

public class FileAppender {
public static void main(String[] args){
appendStringToFile("被加入到文件的头部第一个\n","F:\\Input\\test.txt");
}

public static boolean appendStringToFile(String text,String fileName){
boolean res = false;
File file = new File(fileName);
if(file.isFile()){
FileInputStream fis = null;
FileOutputStream fos = null;
try {
fis = new FileInputStream(file);
BufferedReader br = new BufferedReader(new InputStreamReader(fis));
String temp = null;
StringBuffer sb = new StringBuffer("");
while((temp=br.readLine())!=null){
sb.append(temp+"\n");
}
String finalString = text + sb.toString();
System.out.println(finalString);
fos = new FileOutputStream(fileName);
fos.write(finalString.getBytes());
fos.close();
res = true;
} catch (Exception e) {
res = false;
e.printStackTrace();
}finally{
try{
if(fis!=null){
fis.close();
}if(fos!=null){
fos.close();
}
}catch(Exception e){
e.printStackTrace();
}
}
}
return res;
}
}
jianghg2009 2009-09-28
  • 打赏
  • 举报
回复
引用 3 楼 java2000_net 的回复:
在一个文件的开始追加内容呢?

根据磁盘的存储结构,这个操作是无法直接完成的。
你可以通过
1 新建一个临时文件
2 写入你的追加内容
3 读取原始文件内容,追加到新文件的末尾
4 将原始文件删除
5 将新文件改名为老文件
OVER


谢谢这位的答案!
谢谢各位!
这样也有想过,不知有何更简便的方式呢?期待一下下
liuhong_20 2009-09-28
  • 打赏
  • 举报
回复
学习了!! 标记下
sunxing007 2009-09-28
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 java2000_net 的回复:]
在一个文件的开始追加内容呢?

根据磁盘的存储结构,这个操作是无法直接完成的。
你可以通过
1 新建一个临时文件
2 写入你的追加内容
3 读取原始文件内容,追加到新文件的末尾
4 将原始文件删除
5 将新文件改名为老文件
OVER
[/Quote]
顶!
有些问题稍微动一下脑袋, 绕以下弯子, 看一下api就把问题解决了。
哎!!!
xiaozhangnima 2009-09-28
  • 打赏
  • 举报
回复
这个得顶
  • 打赏
  • 举报
回复
RandomAccessFile好像也是不行的,同意老紫竹,可以缓存一个要追加的内容然后把文件读过来写在追加内容后面然后再写回去。
老紫竹 2009-09-28
  • 打赏
  • 举报
回复
在一个文件的开始追加内容呢?

根据磁盘的存储结构,这个操作是无法直接完成的。
你可以通过
1 新建一个临时文件
2 写入你的追加内容
3 读取原始文件内容,追加到新文件的末尾
4 将原始文件删除
5 将新文件改名为老文件

OVER

67,549

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧