社区
Java EE
帖子详情
一个I/O操作的问题
jianghg2009
2009-09-28 11:28:12
我只会在文件尾追加内容,谁告诉我怎么在一个文件的开始追加内容呢??谢谢
...全文
248
10
打赏
收藏
一个I/O操作的问题
我只会在文件尾追加内容,谁告诉我怎么在一个文件的开始追加内容呢??谢谢
复制链接
扫一扫
分享
举报
写回复
配置赞助广告
用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
操作
系统I/O详细分析
文章目录1、I/O总述1.1、I/O在系统层面发生的过程和性能评级1.2 性能瓶颈分析2、阻塞I/O3、非阻塞I/O 1、I/O总述 1.1、I/O在系统层面发生的过程和性能评级 一次I/O的过程大体可以分为从磁盘读取本地数据,或者从网络端口读取远程数据,这两种I/O发生的过程类似,将数据流向作为分析的视角,第一种本地I/O的过程可以理解成,数据从磁盘被加载进内核态缓冲区,再被拷贝至用户态缓冲区;第二种远程I/O的过程和第一种本地I/O过程类似,唯一的区别是数据不再是从磁盘加载进内核缓冲区,而是从网络端口加
Java的new File究竟是不是I/O
操作
?
特别有意思的话题,在Java语言中new File()按理来讲,这个东西应该就是存放在堆上的,这个File对象应该没有和磁盘上的文件有关系。
异步I/O
操作
今天在看boost库的时候注意到异步I/O
操作
时,缓冲区有效性
问题
。 如何实现异步
操作
:以异步读
操作
为例async_read(buffer, handler);void handler() {} void function(){char buffer[1234];async_read(buffer, handler);}当运行function时会不会有安全隐患,因为这时候缓冲区buffer...
文件I/O和标准I/O的区别
一、先来了解下什么是文件I/O和标准I/O: 文件I/O:文件I/O称之为不带缓存的IO(unbuffered I/O)。不带缓存指的是每个read,write都调用内核中的
一个
系统调用。也就是一般所说的低级I/O——
操作
系统提供的基本IO服务,与os绑定,特定于linix或unix平台。 标准I/O:标准I/O是ANSI C建立的
一个
标准I/O模型,是
一个
标准函数包和stdio.h头文件
PC机组成——I/O
操作
、I/O总线和I/O接口
一、I/O
操作
输入的任务: 将输入设备输入的信息送到内存储器的指定区域 输出的任务: 将内存储器指定区域的内容送出到输出设备 I/O
操作
也包括将外存储器的内容传输到内存,或将内存中的内容传输到外存储器 I/O
操作
的特点 I/O
操作
与CPU的运算可并行进行 多个I/O设备可同时进行工作 配置的I/O设备数量和品种可经常增减或变换 每类I/O设备都有各自的控制器,它们按照CPU的I/O
操作
命令,独立地控制I/O
操作
的全过程 二、总线 (一)定义 用于在CPU、内存、外存和各种输入..
Java EE
67,535
社区成员
225,843
社区内容
发帖
与我相关
我的任务
Java EE
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
复制链接
扫一扫
分享
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章