java 文件流 追加_JAVA向文件中追加内容(转)
向文件尾加入内容有多种方法,常见的方法有两种:
RandomAccessFile类可以实现随机访问文件的功能,可以以读写方式打开文件夹的输出流
public void seek(long pos)可以将读写指针移到文件尾,参数Pos表示从文件开头以字节为单位测量的偏移位置,在该位置文件指针。
public void write(int pos)将数据写到读写指针后面,完成文件的追加。参数pos表示要写入的Byte
通过FileWrite打开文件输出流,构造FileWrite时指定写入模式,是一个布尔量,为真时表示写入的内容添加到已有文件的内容的后面,为假时表示重新写文件,以前的记录被清空,默认的值为假。
具体的例子可以参看以下的代码:
package Characters;
import java.io.BufferedReader;
import java.io.File;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
import java.io.RandomAccessFile;
public class CharactersDemo_03 {
// 使用RandomAccessFile实现文件的追加,其中:fileName表示文件名;content表示要追加的内容
public static void appendMethod_one(String fileName, String content) {
try {
// 按读写方式创建一个随机访问文件流
RandomAccessFile raf = new RandomAccessFile(fileName, "rw");
long fileLength = raf.length();// 获取文件的长度即字节数
// 将写文件指针移到文件尾。
raf.seek(fileLength);
// 按字节的形式将内容写到随机访问文件流中
raf.writeBytes(content);
// 关闭流
raf.close();
} catch (IOException e) {
e.printStackTrace();
}
}
// 使用FileWriter实现文件的追加,其中:fileName表示文件名;content表示要追加的内容
public static void appendMethod_two(String fileName, String content) {
try {
// 创建一个FileWriter对象,其中boolean型参数则表示是否以追加形式写文件
FileWriter fw = new FileWriter(fileName, true);
// 追加内容
fw.write(content);
// 关闭文件输出流
fw.close();
} catch (IOException e) {
e.printStackTrace();
}
}
public static void showFileContent(String fileName) {
File file = new File(fileName);
BufferedReader reader = null;
try {
System.out.println("以行为单位读取文件内容,一次读一整行:");
reader = new BufferedReader(new FileReader(file));
String tempString = null;
int line = 1;
// 一次读入一行,直到读入null为文件结束
while ((tempString = reader.readLine()) != null) {
// 显示行号
System.out.println(line + ": " + tempString);
line++;
}
reader.close();
} catch (IOException e) {
e.printStackTrace();
} finally {
if (reader != null) {
try {
reader.close();
} catch (IOException e1) {
}
}
}
}
public static void main(String[] args) {
String fileName = "C:/temp/append.txt";
String content = "Successful operation!";
System.out.println(fileName + "文件的内容如下:");
CharactersDemo_03.showFileContent(fileName); // 显示文件内容
// 按RandomAccessFile的形式追加文件
System.out.println("\n按RandomAccessFile的形式追加文件后的内容如下:");
CharactersDemo_03.appendMethod_one(fileName, content);
CharactersDemo_03.appendMethod_one(fileName, "\n Game is Over! \n");
CharactersDemo_03.showFileContent(fileName); // 显示文件内容
// 按FileWriter的形式追加文件
System.out.println("\n按FileWriter的形式追加文件后的内容如下:");
CharactersDemo_03.appendMethod_two(fileName, content);
CharactersDemo_03.appendMethod_two(fileName, "\n Game is Over! \n");
CharactersDemo_03.showFileContent(fileName); // 显示文件内容
}
}
java 文件流 追加_JAVA向文件中追加内容(转)相关推荐
- java io流大全_Java IO流系统整理
Java IO流的分类 Java中的流,可以从不同的角度进行分类. 按流向分类: 输入流: 程序可以从中读取数据的流. 输出流: 程序能向其中写入数据的流. 按数据传输单位分类: 字节流:以字节(8位 ...
- Linux C语言 fileno(返回文件流所使用的文件描述词)
fileno(返回文件流所使用的文件描述词) 相关函数 open,fopen 表头文件 #include<stdio.h> 定义函数 int fileno(FILE * stream); ...
- java 文件流 重写_java中关于文件流的总结
[File类] 1. 作用: 用于对磁盘文件进行操作. 删除.创建等. 2. 三种常用的构造函数: ① File file1 = new File("F:\\test"); 直接传 ...
- java io文件流序列化_Java——Properties集合,Object序列化流与反序列化流,打印流,commons-IO文件工具类...
一.properties集合 集合对象Properties类,继承Hashtable,实现Map接口,可以和IO对象结合使用,实现数据的持久存储. 特点: Hashtable的子类,map集合中的方法 ...
- java io流 教程_Java基础教程:IO流与文件基础
Java:IO流与文件基础 说明: 本章内容将会持续更新,大家可以关注一下并给我提供建议,谢谢啦. 走进流 什么是流 流:指的是从源到目的地的字节的有序序列. 在Java中,可以从其中读取一个字节序列 ...
- Java基础--文件流创建FOS对象--重写模式追加模式
一.创建FOS对象(重写模式) FileOutputStream是文件的字节输出流,以字节为单位将数据写入文件 FileOutputStream(File File):---创建一个file对象表示的 ...
- java文件流读取_java 文件及流读取
在Java语言的IO编程中,读取文件是分两个步骤:1.将文件中的数据转换为流,2.读取流内部的数据.其中第一个步骤由系统完成,只需要创建对应的流对象即可,对象创建完成以后步骤1就完成了,第二个步骤使用 ...
- java 字符流读取_Java 字符流读写文件
据说,java读写文件要写很多,贼麻烦,不像c艹,几行代码就搞定.只能抄抄模板拿来用了. 输入输出流分字节流和字符流.先看看字符流的操作,字节转化为字符也可读写. 一.写入文件 1.FileWrite ...
- java获取properties属性_java工具类中获取properties文件的属性
记录获取properties文件属性的工具类 package org.jasig.cas.mylogin.util; import org.slf4j.Logger; import org.slf4j ...
- java压缩zip文件夹错误_Java将文件或者文件夹压缩成zip(修复文件夹中存在多个文件报Stream Closed错误问题)...
项目场景: Java将文件或者文件夹压缩成zip(修复文件夹中存在多个文件报Stream Closed错误问题) 问题描述: 最近的项目需要将多级文件夹压缩成zip,网上找了几个工具类,都会报错,所以 ...
最新文章
- c语言定义链式队列用菜单,数据结构之---C语言实现链式队列
- 必看!互联网开发模式的经验之谈
- Visual Studio 远程调试正在运行的进程
- 将ubuntu配置为路由器_“名酒为王”时代来临但资源将尽,看泸州老窖如何进行“名酒资源再配置”丨深度观察...
- 计算机硬件无法启动不能读取文件,修复Windows出现的“文件或目录已损坏且无法读取”问题...
- 小白Linux入门之:常用命令介绍
- 在线动态几何编辑器 GeometryEditor
- 阜阳智慧城市建设居全国地市级城市第11位
- Idea的JShell Console
- 收货地址列表html,收货地址.html
- stata--异方差检验
- 手机UC浏览器导出书签到电脑Chrome浏览器中
- JETT(三)-多Sheet渲染
- 南宁计算机职称考试网,南宁人事考试职称网
- Db2插入数据溢出报错测试
- 【行研报告】小红书红人及商业内容数据报告—附下载链接
- 【广度优先搜索-中等】1905. 统计子岛屿
- 读书的理由——好书推荐
- 阿里云如何安装部署Oracle11g 图文?
- [11.7日学习记录]多目标优化和帕累托最优解集(未完成)
热门文章
- Context 使用不当造成内存泄露
- Codeforces 679A Bear and Prime 100
- Java调用Memcache入门
- java 远程调用方法_如何在Java中实现远程方法调用
- class path resource [spring/] cannot be resolved to URL because it does not exist
- Mybatis mapper.xml中常用标签详解
- js实现登录表单验证
- STC学习:扫描频率可变的电子钟
- HUSTOJ(2019)在线判题系统的从零开始搭建过程
- 怎么重装python_如何部署Jupyter Notebook用于交互式Python开发?