社区
Java EE
帖子详情
一个I/O操作的问题
jianghg2009
2009-09-28 11:28:12
我只会在文件尾追加内容,谁告诉我怎么在一个文件的开始追加内容呢??谢谢
...全文
141
10
打赏
收藏
一个I/O操作的问题
我只会在文件尾追加内容,谁告诉我怎么在一个文件的开始追加内容呢??谢谢
复制链接
扫一扫
分享
转发到动态
举报
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
打赏
举报
回复
这个得顶
轻松工作快乐生活
2009-09-28
打赏
举报
回复
RandomAccessFile好像也是不行的,同意老紫竹,可以缓存一个要追加的内容然后把文件读过来写在追加内容后面然后再写回去。
老紫竹
2009-09-28
打赏
举报
回复
在一个文件的开始追加内容呢?
根据磁盘的存储结构,这个操作是无法直接完成的。
你可以通过
1 新建一个临时文件
2 写入你的追加内容
3 读取原始文件内容,追加到新文件的末尾
4 将原始文件删除
5 将新文件改名为老文件
OVER
VC网络编程模型示例 - 重叠IO模型
而重叠I/O模型解决了这个
问题
,它使用异步机制,使得I/O
操作
与应用逻辑可以并行执行。 **重叠I/O的基本概念:** 1. **事件对象**:通常使用Windows的事件对象(如ManualResetEvent或AutoResetEvent)或者I/O完成...
博客文章《完成端口详解》配套代码(压力测试客户端)
这样,应用程序可以通过
一个
线程池来处理这些完成的I/O
操作
,从而避免了线程上下文切换的开销,提高了性能。 在“PiggyStressTestClient”中,我们可能会看到以下关键概念和技术: 1. **客户端连接**:客户端通过...
教你玩转网络编程模型之完成例程(Completion Routine)篇配套代码
IOCP是一种高效的多线程I/O管理机制,它可以将多个线程与
一个
或多个I/O
操作
关联起来,当I/O完成时,系统会将控制权转移到相应的完成例程,从而实现并行处理。 本配套代码中,`CompletionRoutine`可能是实现这个功能...
gradle-3.3-all.zip 绿色版本,欢迎下载
1. **速度和性能提升**:Gradle 3.3在构建速度上进行了优化,减少了不必要的I/O
操作
和内存消耗,从而提高了整体构建效率。 2. **更好的缓存机制**:此版本增强了缓存策略,能够更好地重用先前构建的输出,减少不必...
JAVA_API1.6文档(中文)
javax.imageio.stream Java Image I/O API 的
一个
包,用来处理从文件和流中产生的低级别 I/O。 javax.management 提供 Java Management Extensions 的核心类。 javax.management.loading 提供实现高级动态加载的类...
Java EE
67,549
社区成员
225,860
社区内容
发帖
与我相关
我的任务
Java EE
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
复制链接
扫一扫
分享
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章