纠纷奇闻社交美文家庭
投稿投诉
家庭城市
爱好生活
创业男女
能力餐饮
美文职业
心理周易
母婴奇趣
两性技能
社交传统
新闻范文
工作个人
思考社会
作文职场
家居中考
兴趣安全
解密魅力
奇闻笑话
写作笔记
阅读企业
饮食时事
纠纷案例
初中历史
说说童话
乐趣治疗

Hutool实现IO相关操作IOUtilFIleUtilFi

12月4日 浅时光投稿
  今日分享
  每天分享技术实战干货,技术在于积累和收藏,希望可以帮助到您。
  架构开源地址:https:gitee。commsxy
  评论转发Hutool概述
  IO的操作包括读和写,应用场景包括网络操作和文件操作。IO操作在Java中是一个较为复杂的过程,我们在面对不同的场景时,要选择不同的InputStream和OutputStream实现来完成这些操作。而如果想读写字节流,还需要Reader和Writer的各种实现类。这些繁杂的实现类,一方面给我我们提供了更多的灵活性,另一方面也增加了复杂性。IO封装
  io包的封装主要针对流、文件的读写封装,主要以工具类为主,提供常用功能的封装,这包括:IoUtil流操作工具类FileUtil文件读写和操作的工具类。FileTypeUtil文件类型判断工具类WatchMonitor目录、文件监听,封装了JDK1。7中的WatchServiceClassPathResource针对ClassPath中资源的访问封装FileReader封装文件读取FileWriter封装文件写入IO工具类IoUtil
  流的读写可以总结为从输入流读取,从输出流写出,这个过程我们定义为拷贝。这个是一个基本过程,也是文件、流操作的基础。文档拷贝Testpublicvoidcopy(){BufferedInputStreaminFileUtil。getInputStream(D:hometest。txt);BufferedOutputStreamoutFileUtil。getOutputStream(D:hometest2。txt);longcopySizeIoUtil。copy(in,out,IoUtil。DEFAULTBUFFERSIZE);}文件工具类FileUtills列出目录和文件touch创建文件,如果父目录不存在也自动创建mkdir创建目录,会递归创建每层目录del删除文件或目录(递归删除,不判断是否为空),这个方法相当于Linux的delete命令copy拷贝文件或目录这些方法提供了人性化的操作,例如touch方法,在创建文件的情况下会自动创建上层目录
  列出目录和文件列出目录和文件Testpublicvoidls(){File〔〕filesFileUtil。ls(D:home);for(Filef:files){System。out。println(f。getName());}}
  创建文件创建文件,如果父目录不存在也自动创建Testpublicvoidtouch(){FilefileFileUtil。touch(D:homeqingfeng。txt);System。out。println(file。getName());}
  创建目录创建目录,会递归创建每层目录Testpublicvoidmkdir(){FilefileFileUtil。mkdir(D:homeqingfengdata);System。out。println(file。getName());}
  删除文件或目录删除文件或目录(递归删除,不判断是否为空),这个方法相当于Linux的delete命令Testpublicvoiddel(){booleanbolFileUtil。del(D:homeqingfengdata);System。out。println(bol);}
  FileUtil拷贝文件拷贝TestpublicvoidcopyFile(){FilepathFileUtil。copy(newFile(D:homeqingfeng。txt),newFile(D:homeqingfeng123。txt),true);System。out。println(path);}文件类型判断FileTypeUtil
  在文件上传时,有时候我们需要判断文件类型。但是又不能简单的通过扩展名来判断(防止恶意脚本等通过上传到服务器上),于是我们需要在服务端通过读取文件的首部几个二进制位来判断常用的文件类型。获取文件类型TestpublicvoidgetFileType(){FilefileFileUtil。file(D:homeqingfeng。txt);StringtypeFileTypeUtil。getType(file);System。out。println(type);}文件读取FileReader
  FileReader提供了以下方法来快速读取文件内容:readBytesreadStringreadLines同时,此类还提供了以下方法用于转换为流或者BufferedReader:getReadergetInputStream文件读取FileReaderTestpublicvoidFileReader(){默认UTF8编码,可以在构造中传入第二个参数做为编码FileReaderfileReadernewFileReader(D:homeqingfeng。txt);StringresultfileReader。readString();System。out。println(result);byte〔〕readBytesfileReader。readBytes();for(Bytestr:readBytes){System。out。println(str);}ListStringreadLinesfileReader。readLines();for(Stringstr:readLines){System。out。println(str);}}文件写入FileWriter
  此类提供了:getOutputStreamgetWritergetPrintWriter这些方法用于转换为相应的类提供更加灵活的写入操作。文件写入FileWriterTestpublicvoidFileWriter(){FileWriterwriternewFileWriter(D:homeqingfeng。txt);writer。write(test);writer。append(123);}文件监听WatchMonitor
  在Hutool中,WatchMonitor主要针对JDK7中WatchService做了封装,针对文件和目录的变动(创建、更新、删除)做一个钩子,在Watcher中定义相应的逻辑来应对这些文件的变化。
  WatchMonitor提供的事件有:ENTRYMODIFY文件修改的事件ENTRYCREATE文件或目录创建的事件ENTRYDELETE文件或目录删除的事件OVERFLOW丢失的事件这些事件对应StandardWatchEventKinds中的事件。文件监控WatchMonitorpublicstaticvoidmain(String〔〕args){FilefileFileUtil。file(D:homeqingfeng。txt);这里只监听文件或目录的修改事件WatchMonitorwatchMonitorWatchMonitor。create(file,WatchMonitor。ENTRYMODIFY);watchMonitor。setWatcher(newWatcher(){OverridepublicvoidonCreate(WatchE?event,PathcurrentPath){Objectobjevent。context();System。out。println(创建:currentPathobj);}OverridepublicvoidonModify(WatchE?event,PathcurrentPath){Objectobjevent。context();System。out。println(修改:currentPathobj);}OverridepublicvoidonDelete(WatchE?event,PathcurrentPath){Objectobjevent。context();System。out。println(删除:currentPathobj);}OverridepublicvoidonOverflow(WatchE?event,PathcurrentPath){Objectobjevent。context();System。out。println(Overflow:currentPathobj);}});设置监听目录的最大深入,目录层级大于制定层级的变更将不被监听,默认只监听当前层级目录watchMonitor。setMaxDepth(3);启动监听watchMonitor。start();}ClassPath资源访问
  在Java编码过程中,我们常常希望读取项目内的配置文件,按照Maven的习惯,这些文件一般放在项目的srcmainresources下,读取的时候使用:读取配置的资源文件throwsIOExceptionTestpublicvoidClassPathResource()throwsIOException{ClassPathResourceresourcenewClassPathResource(test。properties);PropertiespropertiesnewProperties();properties。load(resource。getStream());System。out。println(properties);}
投诉 评论 转载

张山领价值观怎样能更好落地?作者张山领出品茅庐学堂之前我在做企业咨询的过程当中,在各个场合面向企业家讲课,大家问得比较多的、也是对阿里比较好奇的一个点,就是阿里巴巴的价值观是怎么落地的?今天,我就给……自动驾驶汽车的生命线需要MEMS工程设计总是在于利弊的权衡,但自动驾驶汽车提出的严苛要求,正在将其推向极限。自动驾驶车辆将生成海量的数据,源自各种形式的视觉传感器,以及探测温度、压力和其它关键参数的环境……新爆料!iPhone13规格被确认,充电线圈迎重大升级不出意外的话,今年的iPhone13系列仍然是四款机型,除了iPhone13Pro、iPhone13ProMax、iPhone13mini之外,iPhone13依旧是出货的主力……为什么买手机不推荐8128GB,而是8256GB?踩过坑就明现在买手机存储大致有三个版本选的人最多,64GB、128GB和256GB,64GB存储容量如今已经完全不够用了,剩下的两个版本选的人最多,不过笔者亲身经历告诉大家,如果你不是轻……请关闭路由器的wps功能不管你设多长。只要你的路由器开着WPS功能,我就能把你密码跑出来。现在破解wifi密码最常用的方法就是跑PIN码吧。本人不是专业的计算机科班出身,所以有不足之处,还……万魔真无线蓝牙耳机,头戴一点绿,更生动好音质送女朋友什么礼物比较好看呢?作为配饰来说,除了耳钉,项链这种传统配饰外,觉得现在的无线耳机也是一种非常有吸引力的配饰了,还是非常好用的配饰。想要挑选款送给女朋友礼物的话,可以看……振华股份前三季度扣非净利润预计同增9510627号晚间,公司发布公告,公司预计2021年前三季度实现归属于上市公司股东的净利润为23,443万元到24,710万元,与上年同期相比将增加10,771万元到12,038万元,……Hutool实现IO相关操作IOUtilFIleUtilFi今日分享每天分享技术实战干货,技术在于积累和收藏,希望可以帮助到您。架构开源地址:https:gitee。commsxy评论转发Hutool概述IO的操……三一集团产业创新项目再加码打造湖南首家2。0体育商业综合体湖南日报新湖南客户端3月1日讯(记者黄利飞)三一集团又一数字化、智能化转型升级创新旗舰项目亮相。2月28日下午,三一云谷召开品牌推介会,宣……还敢说读书无用论,看西安奔驰女车主怎么吊打奔驰高管!66万的奔驰汽车,还没开出店门发动机就漏油了?是不是觉得匪夷所思!随着西安奔驰车主漏油事件影响越来越大,目前相关网络视频的传播也越来越广,最初曝光奔驰事件的那个视频点击量……Redmi10Prime海外发布6000mAh电池联发科G89月3日下午,Redmi在印度发布了一款入门价位4G新机Redmi10Prime。Redmi10Prime正面为居中打孔屏设计,配备一块6。5英寸、24001080分辨率……远程办公,你公司用什么协作工具和方法?今年春节是一个特别时期,新型冠状病毒使人们不得不远程办公。公司办公平时都是采用局域网,通过服务器外接每个人的手机和笔记本电脑,通过WPS运行。运用WPS轻办公来实现远程的。……
江西女孩高考712分,名校毕业却17年不工作,还生了6个孩子吴奇隆演的电影(吴奇隆演过的电影大全)陀螺仪手机(手机上陀螺仪有什么用)郭德纲丑娘娘(免费听郭德纲长篇单口)安全模式解除网站(dnf官网在哪里解除安全模式)春江水暖鸭先知的上一句(春江水暖什么先知上一句)吴秀波姚晨(吴秀波姚晨从戏里吵到戏外)2018上海家具展的爱与痛这拨新中式,有没有撩到你?有没有软件查手机定位(查对方手机定位怎么查?)科普下海底地形类型及特征以色列旅游消费水平如何,去过的人都说连公交车都坐不起合肥周边游趁着中秋圆月,逃离城市,帮孩子圆太空梦
哪些体位最适合孕期性爱进球大战!克罗地亚绝地求生西班牙加时入2球53进8强冯潇霆三十六岁生日!曾经的世青赛新星,就这样步入职业暮年年会的通知盘点2023年值得期待的游戏要怎么饲养管理产蛋鹅我国潜在经济增长率影响因素与政策含义幸福作文400字热评聚热点网 运输合同中承运人有什么权利义务约克夏饲养方法约克夏如何饲养世界最高酒店排名,第五上榜吉尼斯纪录,7星级排第八班主任与教学工作计划

友情链接:中准网聚热点快百科快传网快生活快软网快好知文好找美丽时装彩妆资讯历史明星乐活安卓数码常识驾车健康苹果问答网络发型电视车载室内电影游戏科学音乐整形