一个I/O操作的问题 我只会在文件尾追加内容,谁告诉我怎么在一个文件的开始追加内容呢??谢谢 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 用RandomAccessFile这个类此类的实例支持对随机访问文件的读取和写入可以控制文件指针的位置 在一个文件的开始追加内容呢?根据磁盘的存储结构,这个操作是无法直接完成的。你可以通过1 新建一个临时文件2 写入你的追加内容3 读取原始文件内容,追加到新文件的末尾4 将原始文件删除5 将新文件改名为老文件OVER RandomAccessFile好像也是不行的,同意老紫竹,可以缓存一个要追加的内容然后把文件读过来写在追加内容后面然后再写回去。 顶!有些问题稍微动一下脑袋, 绕以下弯子, 看一下api就把问题解决了。 哎!!! 引用 3 楼 java2000_net 的回复:在一个文件的开始追加内容呢? 根据磁盘的存储结构,这个操作是无法直接完成的。 你可以通过 1 新建一个临时文件 2 写入你的追加内容 3 读取原始文件内容,追加到新文件的末尾 4 将原始文件删除 5 将新文件改名为老文件 OVER 谢谢这位的答案!谢谢各位!这样也有想过,不知有何更简便的方式呢?期待一下下 假如文件里是文本文件 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; }} SSH框架中,是不是一个form 就必须有一个action 在java web中,如何将页面输出的数据导出为doc或xls格式 web service 调用问题. 关于SSH整合的问题 系统和系统之间的时间转换问题?(急) 新手好多不理解的地方求大神来帮我下 [200分]在jsp中如何用hibernate实现分页,怎样在jbuilderx配置开发,最好给个例子,我是新手! windows下为什么无法安装tomcat? InitialContext是怎么实现的. 建议初学者看看,高手不要向我扔砖头,如果觉得有用就顶顶,谢谢 request信息如何传进js? 正则表达式问题
此类的实例支持对随机访问文件的读取和写入
可以控制文件指针的位置
你可以通过
1 新建一个临时文件
2 写入你的追加内容
3 读取原始文件内容,追加到新文件的末尾
4 将原始文件删除
5 将新文件改名为老文件OVER
有些问题稍微动一下脑袋, 绕以下弯子, 看一下api就把问题解决了。
哎!!!
在一个文件的开始追加内容呢? 根据磁盘的存储结构,这个操作是无法直接完成的。
你可以通过
1 新建一个临时文件
2 写入你的追加内容
3 读取原始文件内容,追加到新文件的末尾
4 将原始文件删除
5 将新文件改名为老文件
OVER
谢谢这位的答案!
谢谢各位!
这样也有想过,不知有何更简便的方式呢?期待一下下
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;
}
}