总结Java中创建并写文件的5种方式
小职 2020-08-28 来源 : 阅读 796 评论 0

摘要:在java中有很多的方法可以创建文件写文件,你是否真的认真的总结过?下面笔者就帮大家总结一下java中创建文件的五种方法。

在java中有很多的方法可以创建文件写文件,你是否真的认真的总结过?下面笔者就帮大家总结一下java中创建文件的五种方法。

总结Java中创建并写文件的5种方式


Files.newBufferedWriter 

Files.write 

PrintWriter 

File.createNewFile 

FileOutputStream.write(byte[] b) 

实际上不只这5种,通过管道流的排列组合,其实有更多种,但是总结的这五种可以说是最常用及最佳实践,


1. Java 8 Files.newBufferedWriter

java8 提供的newBufferedWriter可以创建文件,并向文件内写入数据。可以通过追加写模式,向文件内追加内容。

@Test 

void testCreateFile1() throws IOException {    

String fileName = "D:\\data\\test\\newFile.txt";     

Path path = Paths.get(fileName);    

// 使用newBufferedWriter创建文件并写文件    

// 这里使用了try-with-resources方法来关闭流,不用手动关闭    

try (BufferedWriter writer =                    

Files.newBufferedWriter(path, StandardCharsets.UTF_8)) {       

writer.write("Hello World -创建文件!!");    

}     

//追加写模式    

try (BufferedWriter writer =                 

Files.newBufferedWriter(path,                         

StandardCharsets.UTF_8,                         

StandardOpenOption.APPEND)){        

writer.write("Hello World -字母哥!!");    

} } 

2. Java 7 Files.write

下面的这种方式 Files.write ,是推荐的方式,语法简单,而且底层是使用Java NIO实现的。同样提供追加写模式向已经存在的文件种追加数据。这种方式是实现文本文件简单读写最方便快捷的方式。

@Test 

void testCreateFile2() throws IOException {    

String fileName = "D:\\data\\test\\newFile2.txt";     

// 从JDK1.7开始提供的方法   

 // 使用Files.write创建一个文件并写入    

Files.write(Paths.get(fileName),                

"Hello World -创建文件!!".getBytes(StandardCharsets.UTF_8));     

// 追加写模式    

Files.write(          

Paths.get(fileName),          

"Hello World -字母哥!!".getBytes(StandardCharsets.UTF_8),          

StandardOpenOption.APPEND); 


3. PrintWriter

PrintWriter是一个比较古老的文件创建及写入方式,从JDK1.5就已经存在了,比较有特点的是:PrintWriter的println方法,可以实现一行一行的写文件。

@Test 

void testCreateFile3() throws IOException {    

String fileName = "D:\\data\\test\\newFile3.txt";    

 // JSD 1.5开始就已经存在的方法    

try (PrintWriter writer = new PrintWriter(fileName, "UTF-8")) {       

writer.println("Hello World -创建文件!!");       

writer.println("Hello World -字母哥!!");    

}     

// Java 10进行了改进,支持使用StandardCharsets指定字符集    

/*try (PrintWriter writer = new PrintWriter(fileName, StandardCharsets.UTF_8)) {        

writer.println("first line!");       

writer.println("second line!");     

*/  


4. File.createNewFile()

createNewFile()方法的功能相对就比较纯粹,只是创建文件不做文件写入操作。 返回true表示文件成功,返回 false表示文件已经存在.可以配合FileWriter 来完成文件的写操作。

@Test 

void testCreateFile4() throws IOException {    

String fileName = "D:\\data\\test\\newFile4.txt";     

File file = new File(fileName);     

// 返回true表示文件成功    

// false 表示文件已经存在    

if (file.createNewFile()) {       

System.out.println("创建文件成功!");    

} else {       

System.out.println("文件已经存在不需要重复创建");    

}     

// 使用FileWriter写文件    

try (FileWriter writer = new FileWriter(file)) {       

writer.write("Hello World -创建文件!!");    

}  


5.最原始的管道流方法

最原始的方式就是使用管道流嵌套的方法,但是笔者觉得这种方法历久弥新,使用起来非常灵活。你想去加上Buffer缓冲,你就嵌套一个BufferedWriter,你想去向文件中写java对象你就嵌套一个ObjectOutputStream。但归根结底要用到FileOutputStream。

@Test 

void testCreateFile5() throws IOException {    

String fileName = "D:\\data\\test\\newFile5.txt";    

try(FileOutputStream fos = new FileOutputStream(fileName);       

OutputStreamWriter osw = new OutputStreamWriter(fos);       

BufferedWriter bw = new BufferedWriter(osw);){       

bw.write("Hello World -创建文件!!");       

bw.flush();    

本文由 @小职 发布于职坐标。未经许可,禁止转载。
喜欢 | 0 不喜欢 | 0
看完这篇文章有何感觉?已经有0人表态,0%的人喜欢 快给朋友分享吧~
评论(0)
后参与评论

您输入的评论内容中包含违禁敏感词

我知道了

助您圆梦职场 匹配合适岗位
验证码手机号,获得海同独家IT培训资料
选择就业方向:
人工智能物联网
大数据开发/分析
人工智能Python
Java全栈开发
WEB前端+H5

请输入正确的手机号码

请输入正确的验证码

获取验证码

您今天的短信下发次数太多了,明天再试试吧!

提交

我们会在第一时间安排职业规划师联系您!

您也可以联系我们的职业规划师咨询:

小职老师的微信号:z_zhizuobiao
小职老师的微信号:z_zhizuobiao

版权所有 职坐标-一站式IT培训就业服务领导者 沪ICP备13042190号-4
上海海同信息科技有限公司 Copyright ©2015 www.zhizuobiao.com,All Rights Reserved.
 沪公网安备 31011502005948号    

©2015 www.zhizuobiao.com All Rights Reserved

208小时内训课程