这篇文章主要介绍了Java 语言(一种计算机语言,尤用于创建网站)语言(一种计算机语言,尤用于创建网站)写入文件的几种方法,需要的朋友可以参考下
一,FileWritter写入文件
FileWritter,字符流写入字符到文件。默认情况下,它会使用新的内容取代所有现有的内容,然而,当指定一个真(布尔)值作为文件记录器构造函数的第二个参数,它会保留现有的内容,并追加新内容在文件的末尾。
1.替换所有现有的内容与新的内容。
新建文件写入器(文件);2.保留现有的内容和附加在该文件的末尾的新内容。
new FileWriter(file,true);
追加文件示例
一个文本文件,命名为" javaio-appendfile.txt ",并包含以下内容。
字母表你好追加新内容新文件写入器(文件,真)
包com。yii Bai。文件;
导入Java。io。文件;
导入Java。io。filewriter
导入Java。io。缓冲编写器;
导入Java。io。io异常;
公共类AppendToFileExample
{
公共静态void main( String[] args)
{
尝试{
字符串数据='此内容将追加到文件末尾;
File File=new File(' javaio-append File。txt’);
//如果文件不存在,则创建它
如果(!file.exists()){
文件。创建新文件();
}
//真=追加文件
FileWriter FileWriter=新的FileWriter(文件。getname(),true);
缓冲写入器buffer writer=新缓冲写入器(fileWritter);
bufferWritter.write(数据);
缓冲写入器。close();
系统。出去。println(' Done ');
}catch(IOException e){
e。printstacktrace();
}
}
}
结果
现在,文本文件" javaio-appendfile.txt "内容更新如下:
字母表您好,此内容将附加到文件的末尾
二,BufferedWriter写入文件
缓冲字符(BufferedWriter)是一个字符流类来处理字符数据。不同于字节流(数据转换成字节),你可以直接写字符串,数组或字符数据保存到文件。
包com。yii Bai。iofile
导入Java。io。缓冲编写器;
导入Java。io。文件;
导入Java。io。filewriter
导入Java。io。io异常;
公共类WriteToFileExample {
公共静态void main(String[] args) {
尝试{
字符串内容='这是要写入文件的内容;
File File=新文件('/users/mkyong/filename。txt’);
//如果文件不存在,则创建它
如果(!file.exists()) {
文件。创建新文件();
}
文件编写器fw=新文件编写器(文件。getabsolutefile());
缓冲写入器bw=新缓冲写入器(fw);
bw.write(内容);
bw。close();
系统。出去。println(' Done ');
} catch (IOException e) {
e。printstacktrace();
}
}
}
三,FileOutputStream写入文件
文件输出流是一种用于处理原始二进制数据的字节流类。为了将数据写入到文件中,必须将数据转换为字节,并保存到文件。请参阅下面的完整的例子。
包com。yii Bai。木卫一;
导入Java。io。文件;
导入Java。io。文件输出流;
导入Java。io。io异常;
公共类WriteFileExample {
公共静态void main(String[] args) {
FileOutputStream fop=null
文件文件;
字符串内容='这是文本内容;
尝试{
File=new File(' c:/new File。txt’);
fop=新文件输出流(文件);
//如果文件不存在,则创建它
如果(!file.exists()) {
文件。创建新文件();
}
//获取以字节为单位的内容
byte[]contentInBytes=内容。getbytes();
fop。write(contentInBytes);
fop。flush();
fop。close();
系统。出去。println(' Done ');
} catch (IOException e) {
e。printstacktrace();
}最后{
尝试{
如果(fop!=null) {
fop。close();
}
} catch (IOException e) {
e。printstacktrace();
}
}
}
}
//更新的JDK7例如,使用新的"尝试资源关闭"的方法来轻松处理文件。
包com。yii Bai。木卫一;
导入Java。io。文件;
导入Java。io。文件输出流;
导入Java。io。io异常;
公共类WriteFileExample {
公共静态void main(String[] args) {
File File=new File(' c:/new File。txt’);
字符串内容='这是文本内容;
try(文件输出流fop=新文件输出流(文件)){
//如果文件不存在,则创建它
如果(!file.exists()) {
文件。创建新文件();
}
//获取以字节为单位的内容
byte[]contentInBytes=内容。getbytes();
fop。write(contentInBytes);
fop。flush();
fop。close();
系统。出去。println(' Done ');
} catch (IOException e) {
e。printstacktrace();
}
}
}
下面是其他网友的补充
java.io的几种读写文件的方式
一、java把这些不同来源和目标的数据都统一抽象为数据流。
Java 语言(一种计算机语言,尤用于创建网站)语言(一种计算机语言,尤用于创建网站)语言的输入输出功能是十分强大而灵活的。
在Java 语言(一种计算机语言,尤用于创建网站)语言(一种计算机语言,尤用于创建网站)类库中,木卫一部分的内容是很庞大的,因为它涉及的领域很广泛:标准输入输出,文件的操作,网络上的数据流,字符串流,对象流,zip文件流等等。
这里介绍几种读写文件的方式
二、输入流、输出流(字节流)
//读取文件(字节流)
file inputstream in=new file inputstream(' d:\ \ 1。txt’);
//写入相应的文件
文件输出流out=新文件输出流(' d:\ \ 2。txt’);
//读取数据
//一次性取多少字节
字节[]字节=新字节[2048];
//接受读取的内容(名词就代表的相关数据,只不过是数字的形式)
int n=-1;
//循环取出数据
while ((n=in.read(bytes,0,bytes.length))!=-1) {
//转换成字符串
字符串str=新字符串(字节,0,n,' UTF-8 ');#这里可以实现字节到字符串的转换,比较实用
系统。出去。println(str);
//写入相关文件
out.write(bytes,0,n);
//清除缓存向文件写入数据
出去。flush();
}
//关闭流
英寸close();
出去。close();
三、BufferedInputStream、BufferedOutputStream(缓存字节流)使用方式和字节流差不多,但是效率更高(推荐使用)
//读取文件(缓存字节流)
BufferedInputStream in=new BufferedInputStream(new file inputstream(' d:\ \ 1。txt’);
//写入相应的文件
BufferedOutputStream out=new BufferedOutputStream(新文件输出流(' d:\ \ 2。txt’);
//读取数据
//一次性取多少字节
字节[]字节=新字节[2048];
//接受读取的内容(名词就代表的相关数据,只不过是数字的形式)
int n=-1;
//循环取出数据
while ((n=in.read(bytes,0,bytes.length))!=-1) {
//转换成字符串
字符串str=新字符串(字节,0,n,' UTF-8 ');
系统。出去。println(str);
//写入相关文件
out.write(bytes,0,n);
//清除缓存,向文件写入数据
出去。flush();
}
//关闭流
英寸close();
出去。close();
四、InputStreamReader、OutputStreamWriter(字节流,这种方式不建议使用,不能直接字节长度读写)。使用范围用做字符转换
//读取文件(字节流)
InputStreamReader in=new InputStreamReader(新文件inputstream(' d:\ \ 1。txt’)、‘UTF-8’);
//写入相应的文件
output streamwriter out=new output streamwriter(新文件输出流(' d:\ \ 2。txt’);
//读取数据
//循环取出数据
char[]chars=new char[2048];
int len=-1;
while ((len=in.read(chars,0,chars.length))!=-1) {
系统。出去。println(len);
//写入相关文件
out.write(chars,0,len);
//清除缓存
出去。flush();
}
//关闭流
英寸close();
出去。close();
五、BufferedReader、BufferedWriter(缓存流,提供阅读线方法读取一行文本)
file inputstream file inputstream=新文件inputstream(' d:\ \ 1。txt’);
文件输出流文件输出流=新文件输出流(' d:\ \ 2。txt ',真);
InputStreamReader InputStreamReader=new InputStreamReader(文件输入流,“UTF-8”);
output streamwriter output streamwriter=new output streamwriter(文件输出流,' UTF-8 ');
//读取文件(字符流)
缓冲读取器in=新的缓冲读取器(inputStreamReader,“UTF-8”);#这里主要是涉及中文
//buffered reader in=new buffered reader(new file reader(' d:\ \ 1。txt’));
//写入相应的文件
缓冲写入器输出=新的缓冲写入器(输出流写入器,“UTF-8”);
//buffered writer out=new buffered writer(new file writer(' d:\ \ 2。txt’);
//读取数据
//循环取出数据
字符串str=null
while ((str=in.readLine())!=null) {
系统。出去。println(str);
//写入相关文件
out . write(str);
out . newline();
//清除缓存以将数据写入文件
out . flush();
}
//关闭流
in . close();
out . close();
不及物动词Reader,PrintWriter(PrintWriter非常好用,正在写数据的同事可以格式化)
//读取文件(字节流)
reader in=new inputstream reader(new file inputstream(' d:\ \ 1 . txt '),' UTF-8 ');
//编写相应的文件
PrintWriter out=new PrintWriter(new FileWriter(' d:\ \ 2 . txt ');
//读取数据
//循环提取数据
byte[] bytes=新字节[1024];
int len=-1;
while ((len=in.read())!=-1) {
system . out . println(len);
//写相关文件
out . write(len);
//清除缓存
out . flush();
}
//关闭流
in . close();
out . close();
七、基本用法那么多。当然,每次阅读和写作的使用是可以分开的。为了更好的利用io。建议使用BufferedInputStream和BufferedOutputStream在流中进行读写。
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。