电脑知识|欧美黑人一区二区三区|软件|欧美黑人一级爽快片淫片高清|系统|欧美黑人狂野猛交老妇|数据库|服务器|编程开发|网络运营|知识问答|技术教程文章 - 好吧啦网

您的位置:首頁技術(shù)文章
文章詳情頁

java中創(chuàng)建、寫入文件的5種方式

瀏覽:18日期:2022-08-26 08:05:11

在java中有很多的方法可以創(chuàng)建文件寫文件,你是否真的認(rèn)真的總結(jié)過?下面筆者就幫大家總結(jié)一下java中創(chuàng)建文件的五種方法。

Files.newBufferedWriter(Java 8) Files.write(Java 7 推薦) PrintWriter File.createNewFile FileOutputStream.write(byte[] b) 管道流

實(shí)際上不只這5種,通過管道流的排列組合,其實(shí)有更多種,但是筆者總結(jié)的這五種可以說是最常用及最佳實(shí)踐,

前提小知識(shí)

以前我在寫技術(shù)文章涉及到“流關(guān)閉”、“連接關(guān)閉”的時(shí)候,經(jīng)常有人留言:“還寫技術(shù)文章,寫個(gè)流都不知道close()”,這種留言我遇到過無數(shù)回!在本文中大量的使用到了try-with-resources語法,這個(gè)語法真的是很久的了,但是的確還有小伙伴不知道(知道的小伙伴就略過吧)。我還是說一下,下文中的管道流不是我沒close,是自動(dòng)關(guān)閉close的。

try(管道流、連接等實(shí)現(xiàn)了Closeable接口的類){ //這里使用類對(duì)象操作}//用try()包含起來,就不用在finally里面自己手動(dòng)的去 Object.close()了,會(huì)自動(dòng)的關(guān)閉

1. Java 8 Files.newBufferedWriter

java8 提供的newBufferedWriter可以創(chuàng)建文件,并向文件內(nèi)寫入數(shù)據(jù)。可以通過追加寫模式,向文件內(nèi)追加內(nèi)容。

@Testvoid testCreateFile1() throws IOException { String fileName = 'D:datatestnewFile.txt'; Path path = Paths.get(fileName); // 使用newBufferedWriter創(chuàng)建文件并寫文件 // 這里使用了try-with-resources方法來關(guān)閉流,不用手動(dòng)關(guān)閉 try (BufferedWriter writer = Files.newBufferedWriter(path, StandardCharsets.UTF_8)) { writer.write('Hello World -創(chuàng)建文件!!'); } //追加寫模式 try (BufferedWriter writer =Files.newBufferedWriter(path, StandardCharsets.UTF_8, StandardOpenOption.APPEND)){ writer.write('Hello World -字母哥!!'); }}

2. Java 7 Files.write

下面的這種方式Files.write,是筆者推薦的方式,語法簡(jiǎn)單,而且底層是使用Java NIO實(shí)現(xiàn)的。同樣提供追加寫模式向已經(jīng)存在的文件種追加數(shù)據(jù)。這種方式是實(shí)現(xiàn)文本文件簡(jiǎn)單讀寫最方便快捷的方式。

@Testvoid testCreateFile2() throws IOException { String fileName = 'D:datatestnewFile2.txt'; // 從JDK1.7開始提供的方法 // 使用Files.write創(chuàng)建一個(gè)文件并寫入 Files.write(Paths.get(fileName),'Hello World -創(chuàng)建文件!!'.getBytes(StandardCharsets.UTF_8)); // 追加寫模式 Files.write( Paths.get(fileName), 'Hello World -字母哥!!'.getBytes(StandardCharsets.UTF_8), StandardOpenOption.APPEND);}

3. PrintWriter

PrintWriter是一個(gè)比較古老的文件創(chuàng)建及寫入方式,從JDK1.5就已經(jīng)存在了,比較有特點(diǎn)的是:PrintWriter的println方法,可以實(shí)現(xiàn)一行一行的寫文件。

@Testvoid testCreateFile3() throws IOException { String fileName = 'D:datatestnewFile3.txt'; // JSD 1.5開始就已經(jīng)存在的方法 try (PrintWriter writer = new PrintWriter(fileName, 'UTF-8')) { writer.println('Hello World -創(chuàng)建文件!!'); writer.println('Hello World -字母哥!!'); } // Java 10進(jìn)行了改進(jìn),支持使用StandardCharsets指定字符集 /*try (PrintWriter writer = new PrintWriter(fileName, StandardCharsets.UTF_8)) { writer.println('first line!'); writer.println('second line!'); } */}

4. File.createNewFile()

createNewFile()方法的功能相對(duì)就比較純粹,只是創(chuàng)建文件不做文件寫入操作。 返回true表示文件成功,返回 false表示文件已經(jīng)存在.可以配合FileWriter 來完成文件的寫操作。

@Testvoid testCreateFile4() throws IOException { String fileName = 'D:datatestnewFile4.txt'; File file = new File(fileName); // 返回true表示文件成功 // false 表示文件已經(jīng)存在 if (file.createNewFile()) { System.out.println('創(chuàng)建文件成功!'); } else { System.out.println('文件已經(jīng)存在不需要重復(fù)創(chuàng)建'); } // 使用FileWriter寫文件 try (FileWriter writer = new FileWriter(file)) { writer.write('Hello World -創(chuàng)建文件!!'); }}

5.最原始的管道流方法

最原始的方式就是使用管道流嵌套的方法,但是筆者覺得這種方法歷久彌新,使用起來非常靈活。你想去加上Buffer緩沖,你就嵌套一個(gè)BufferedWriter,你想去向文件中寫java對(duì)象你就嵌套一個(gè)ObjectOutputStream。但歸根結(jié)底要用到FileOutputStream。

@Testvoid testCreateFile5() throws IOException { String fileName = 'D:datatestnewFile5.txt'; try(FileOutputStream fos = new FileOutputStream(fileName); OutputStreamWriter osw = new OutputStreamWriter(fos); BufferedWriter bw = new BufferedWriter(osw);){ bw.write('Hello World -創(chuàng)建文件!!'); bw.flush(); }}

以上就是java中創(chuàng)建、寫入文件的5種方式的詳細(xì)內(nèi)容,更多關(guān)于Java 創(chuàng)建、寫入文件的資料請(qǐng)關(guān)注好吧啦網(wǎng)其它相關(guān)文章!

標(biāo)簽: Java
相關(guān)文章:
主站蜘蛛池模板: 禹城彩钢厂_钢结构板房_彩钢复合板-禹城泰瑞彩钢复合板加工厂 | 淬火设备-钎焊机-熔炼炉-中频炉-锻造炉-感应加热电源-退火机-热处理设备-优造节能 | 储气罐,真空罐,缓冲罐,隔膜气压罐厂家批发价格,空压机储气罐规格型号-上海申容压力容器集团有限公司 | 艾默生变频器,艾默生ct,变频器,ct驱动器,广州艾默生变频器,供水专用变频器,风机变频器,电梯变频器,艾默生变频器代理-广州市盟雄贸易有限公司官方网站-艾默生变频器应用解决方案服务商 | 游泳池设计|设备|配件|药品|吸污机-东莞市太平洋康体设施有限公司 | TPE_TPE热塑性弹性体_TPE原料价格_TPE材料厂家-惠州市中塑王塑胶制品公司- 中塑王塑胶制品有限公司 | 【孔氏陶粒】建筑回填陶粒-南京/合肥/武汉/郑州/重庆/成都/杭州陶粒厂家 | 拉力测试机|材料拉伸试验机|电子拉力机价格|万能试验机厂家|苏州皖仪实验仪器有限公司 | 三氯异氰尿酸-二氯-三氯-二氯异氰尿酸钠-优氯净-强氯精-消毒片-济南中北_优氯净厂家 | 深圳公司注册-工商注册公司-千百顺代理记账公司 | 杭州顺源过滤机械有限公司官网-压滤机_板框压滤机_厢式隔膜压滤机厂家 | 阿尔法-MDR2000无转子硫化仪-STM566 SATRA拉力试验机-青岛阿尔法仪器有限公司 | 转子泵_凸轮泵_凸轮转子泵厂家-青岛罗德通用机械设备有限公司 | 打包钢带,铁皮打包带,烤蓝打包带-高密市金和金属制品厂 | SF6环境监测系统-接地环流在线监测装置-瑟恩实业 | 样品瓶(色谱样品瓶)百科-浙江哈迈科技有限公司 | 亿立分板机_曲线_锯片式_走刀_在线式全自动_铣刀_在线V槽分板机-杭州亿协智能装备有限公司 | 密集架-手摇-智能-移动-价格_内蒙古档案密集架生产厂家 | 德州网站制作 - 网站建设设计 - seo排名优化 -「两山建站」 | 中央空调维修、中央空调保养、螺杆压缩机维修-苏州东菱空调 | 专业的新乡振动筛厂家-振动筛品质保障-环保振动筛价格—新乡市德科筛分机械有限公司 | 【直乐】河北石家庄脊柱侧弯医院_治疗椎间盘突出哪家医院好_骨科脊柱外科专业医院_治疗抽动症/关节病骨伤权威医院|排行-直乐矫形中医医院 | CCE素质教育博览会 | CCE素博会 | 教育展 | 美育展 | 科教展 | 素质教育展 | 压力控制器,差压控制器,温度控制器,防爆压力控制器,防爆温度控制器,防爆差压控制器-常州天利智能控制股份有限公司 | 法钢特种钢材(上海)有限公司 - 耐磨钢板、高强度钢板销售加工 阀门智能定位器_电液动执行器_气动执行机构-赫尔法流体技术(北京)有限公司 | 软启动器-上海能曼电气有限公司| 智能汉显全自动量热仪_微机全自动胶质层指数测定仪-鹤壁市科达仪器仪表有限公司 | 变位机,焊接变位机,焊接变位器,小型变位机,小型焊接变位机-济南上弘机电设备有限公司 | 胜为光纤光缆_光纤跳线_单模尾纤_光纤收发器_ODF光纤配线架厂家直销_北京睿创胜为科技有限公司 - 北京睿创胜为科技有限公司 | 右手官网|右手工业设计|外观设计公司|工业设计公司|产品创新设计|医疗产品结构设计|EMC产品结构设计 | 活性氧化铝球|氧化铝干燥剂|分子筛干燥剂|氢氧化铝粉-淄博同心材料有限公司 | 中央空调维修、中央空调保养、螺杆压缩机维修-苏州东菱空调 | 制冷采购电子商务平台——制冷大市场 | 磁力去毛刺机_去毛刺磁力抛光机_磁力光饰机_磁力滚抛机_精密金属零件去毛刺机厂家-冠古科技 | 金联宇电缆总代理-金联宇集团-广东金联宇电缆实业有限公司 | 广州迈驰新GMP兽药包装机首页_药品包装机_中药散剂包装机 | 电子万能试验机_液压拉力试验机_冲击疲劳试验机_材料试验机厂家-济南众标仪器设备有限公司 | 济南网站建设|济南建网站|济南网站建设公司【济南腾飞网络】【荐】 | 德国EA可编程直流电源_电子负载,中国台湾固纬直流电源_交流电源-苏州展文电子科技有限公司 | 船用锚链|专业锚链生产厂家|安徽亚太锚链制造有限公司 | 企业彩铃制作_移动、联通、电信集团彩铃上传开通_彩铃定制_商务彩铃管理平台-集团彩铃网 |