JDK7文件处理

Jdk7解压打包版本 Jdk7解压打包版本 Jdk7解压打包版本 Jdk7解压打包版本 Jdk7解压打包版本 立即下载

实用的工具类,Path,Paths,Files,FileSystem 

有一些很灵活的处理方法: 

[java]  view plain  copy
  在CODE上查看代码片 派生到我的代码片
  1. //得到一个Path对象  
  2. Path path = Paths.get("/test/a.txt");  
  3. //Path转换File  
  4. File file = path.toFile();  
  5.   
  6. Files.readAllBytes(path);  
  7. Files.deleteIfExists(path);  
  8. Files.size(path);  

正确拼接路径不要手动拼接路径

不好的代码: 

[java]  view plain  copy
  在CODE上查看代码片 派生到我的代码片
  1. String game = "foo";  
  2. File file = new File("~/test/" + game + ".txt");  
即使是要手动拼接路径,请使用下面两个平台无关的变量: 
[java]  view plain  copy
  在CODE上查看代码片 派生到我的代码片
  1. System.out.println(File.pathSeparator);  
  2. System.out.println(File.separator);  
正确简洁的方法是使用Paths类: 
[java]  view plain  copy
  在CODE上查看代码片 派生到我的代码片
  1. Path path = Paths.get("~/test/", "foo", "bar", "a.txt");  
  2. System.out.println(path);  
  3. //  ~/test/foo/bar/a.txt  

读取文件的所有内容,文件的所有行

读取文件所有内容前,先判断文件大小,防止OOM。 

[java]  view plain  copy
  在CODE上查看代码片 派生到我的代码片
  1. public static byte[] readAllBytes(String fileName, long maxSize) throws IOException {  
  2.     Path path = Paths.get(fileName);  
  3.     long size = Files.size(path);  
  4.     if (size > maxSize) {  
  5.         throw new IOException("file: " + path + ", size:" + size + "> " + maxSize);  
  6.     }  
  7.     return Files.readAllBytes(path);  
  8. }  
  9.   
  10. public static List<String> readAlllines(String fileName, Charset charset, long maxSize) throws IOException {  
  11.     Path path = Paths.get(fileName);  
  12.     long size = Files.size(path);  
  13.     if (size > maxSize) {  
  14.         throw new IOException("file: " + path + ", size:" + size + "> " + maxSize);  
  15.     }  
  16.     return Files.readAllLines(path, charset);  
  17. }  

利用JDK7的特性,auto close,远离一堆的catch, close

[java]  view plain  copy
  在CODE上查看代码片 派生到我的代码片
  1. Path path = Paths.get("~/test/", "foo", "bar", "a.txt");  
  2. try (InputStream in = Files.newInputStream(path)) {  
  3.     // process  
  4.     //in.read();  
  5. }  

历遍目录

DK7新特性,FileVisitor 

[java]  view plain  copy
  在CODE上查看代码片 派生到我的代码片
  1. public class MyFileVisitor extends SimpleFileVisitor<Path>{  
  2.     @Override  
  3.     public FileVisitResult visitFile(Path file, BasicFileAttributes attrs) throws IOException {  
  4.         System.out.println(file);  
  5.         return FileVisitResult.CONTINUE;  
  6.     }  
  7.       
  8.     public static void main(String[] args) throws IOException {  
  9.         Path path = Paths.get("/home/user/test");  
  10.         Files.walkFileTree(path, new MyFileVisitor());  
  11.     }  
  12. }  

判断文件是否在父路径下

网上流传一种递归判断parent的方式,http://stackoverflow.com/questions/18227634/check-if-file-is-in-subdirectory

但是查阅jdk代码后,发现getParent()函数是通过处理文件名得到的。所以直接比较文件前缀即可。 

请务必注意,file.getCanonicalPath()函数 。

[java]  view plain  copy
  在CODE上查看代码片 派生到我的代码片
  1. public static boolean isSubFile(File parent, File child) throws IOException {  
  2.     return child.getCanonicalPath().startsWith(parent.getCanonicalPath());  
  3. }  
  4.   
  5.   
  6. public static boolean isSubFile(String parent, String child) throws IOException {  
  7.     return isSubFile(new File(parent), new File(child));  
  8. }  
JDK1.7 之java.nio.file.Files 读取文件仅需一行代码实现 下面小编就为大家分享一篇JDK1.7 之java.nio.file.Files 读取文件仅需一行代码实现,具有很好的参考价值,希望对大家有所帮助 立即下载

相关推荐

使用jdk7的nio2操作文件拷贝和剪切示例

使用jdk7的NIO2进行文件或文件夹的拷贝移动操作。可以自动创建路径,差异化更新文件,简单的出错重连机制

JDK7的文件操作

代码片段如下: import java.io.BufferedReader; import java.io.BufferedWriter; import java.io.IOException; import java.io.InputStream; import java.io.InputStreamReader; import java.nio.charset.Charset; impo

Paul_Huang的Footprint 1221

LVGL的基础知识总结

另外,还有自定义字库的使用,具体可参考开发手册。

qq_28576837的博客 7383

简单几步,快速解压7Z压缩文件

办公必备技巧,7Z格式文件完整解压方法

passneo的博客 457

I-Cache 和 D-Cache

I-Cache 和 D-Cache

liuyuanbin9001 7019

uniapp自定义tabbar闪屏?3步搞定原生tabbar隐藏+自定义占位(附完整代码)

本文针对UniApp开发中自定义TabBar切换页面闪烁的痛点,提供了一套根治方案。通过隐藏原生TabBar并利用自定义组件进行视觉占位,巧妙结合原生切换的无闪烁优势与自定义设计的灵活性。文章详细解析了闪屏根源,并附上完整的page.json配置与代码实现,帮助开发者彻底解决此问题,提升小程序应用质感。

postgres8guard的博客 1529

Java操作文件Path 和 Paths 及Files类介绍

2.4. 复制文件:Files.copy(from, to, StandardCopyOption.REPLACE_EXISTING);2.5. 移动文件:Files.move(from, to, StandardCopyOption.ATOMIC_MOVE);创建文件,删除文件,复制文件,查找文件,查找文件个数等,只需要调一个Api就能解决,下面开始进行介绍。这是一套非常好用操作文件的方法,省去了以前复杂的文件操作方法。...

m0_57640408的博客 3055

Win11下USB-Blaster驱动安装全攻略:Quartus用户必看(附常见问题解决)

本文详细介绍了在Windows 11系统下为Intel FPGA开发工具Quartus安装USB-Blaster驱动的完整流程与常见问题解决方案。针对Win11更严格的驱动签名验证机制,提供了从标准安装步骤到高级故障排查(如禁用驱动强制签名、使用测试模式)的实用指南,帮助用户快速解决驱动安装失败问题,确保FPGA编程调试顺利进行。

weixin_29256771的博客 657

java7中新文件操作类Files

jdk7提供了新的文件操作类,在java.nio.file包下,同时也提供paths类,试用了一下,还是不错,代码和大家分享一下: import java.io.BufferedWriter; import java.io.OutputStream; import java.nio.charset.StandardCharsets; import java.nio.file.Files;...

studypi的专栏 348

基于Playwright与异步技术的公司评价智能爬取实战:以Glassdoor为例

本文将介绍一套基于最新Python技术的智能爬虫解决方案,使用Playwright实现浏览器自动化,结合异步编程和智能解析技术,高效抓取Glassdoor等平台的公司评价数据。我们不仅关注数据获取,更注重数据的结构化处理和反反爬虫策略的实现。

2201_76125261的博客 223

【FISCO BCOS】二十、多机部署区块链

实际开发中,为了满足高可用性和高容错性的需求,往往会采用多级部署区块链的方式,今天介绍一下FISCO BCOS的多机部署流程。

naihe_fish的博客 3648

文件读写(JDK7)

以下我是在”/Users/zhanqian/demo”的路径下进行的文件操作。package main;import java.io.IOException; import java.nio.charset.Charset; import java.nio.file.Files; import java.nio.file.Path; import java.nio.file.Paths; impor

番茄的博客 676

【2026最新版】Open3D(C++)点云处理算法汇总(C++长期更新版)

C++版本Open3D进行点云处理的一些算法使用案例。博客长期更新,最近一次更新时间为:2026年4月11日。

点云侠的博客 1万+

JDK7之后的异常处理方法 与 JDK7之前的标准异常处理,通过复制单级文件夹示例区别。复制文件 的两种异常处理方式,不建议使用JDK9之后增减的异常处理方式

通过复制单级文件夹示例加以区别:复制文件夹下的文件,比较两种异常处理方式的区别, 不建议使用JDK9之后的异常处理方式,因为最后还是要跑出异常,至少目前使用并没有简化。这里不做演示了。 见代码copyFile1()与方法copyFile2()的区别 public class CopyFolderDemo1 { public static void main(String[] ar...

timon777的博客 218

Data-Structures-and-Algorithm-Analysis-in-Java.pdf

作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

Win7 下以管理员身份运行批处理文件,切换JDK版本

Win7下 切换JDK的批处理命令 1. 批处理文件(必须以管理员身份执行)内容如下 @echo off rem --- Base Config 配置JDK的安装目录 --- :init set JAVA_HOME_1_8=C:\Program Files\Java\jdk1.8 set JAVA_HOME_1_7=C:\Program Files\Java\jdk1.7 :start

Hu199055的专栏 2556

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

复制文件异常处理,3种方式(JDK9、JDK7、标准)

package glj10; import java.io.FileReader; import java.io.FileWriter; import java.io.IOException; public class ExceptionDemo { public static void main(String[] args) { } //JDK9的改进方案 public static void method2() throws IOExce.

qq_47209199的博客 260

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

java将一个文件下所有文件做拷贝 以及jdk7和9 的处理trycatch处理方式

拷贝文件 /** * 需求:把一个文件下所有文件拷贝一份 * 思路: * 1:创建数据源File对象, * 2:创建目的地File对象, * 3:写方法实现文件夹的复制,参数为数据源File对象和目的地File对象 * 4:判断数据源File是否是目录 * 是: * A:在目的地下创建和数据源File名称一样的目录 * B:

penliyoushui的博客 186

java复制文件文件损坏_Java 复制文件异常处理方案

Java 复制文件异常处理方案抛出异常private static void method4() throws IOException{}try . . .catch . . .finally 的做法:try {可能出现异常的代码;}catch(异常类名 变量名){异常的处理代码;}finally{执行所有的清除操作;}JDK7改进方案try(定义流对象) {可能出现异常的代码;} catch(异...

weixin_42549117的博客 709

处理文件异常

import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.FileOutputStream; import java.io.InputStreamReader; import java.io.OutputStreamWriter; import javax.imageio.stream.FileImageInputStream; import org.omg.CORBA_2_3.portab.

qq_28616213的博客 313

复制文件的异常处理

调用流对象的时候,抛出了异常,这时就需要需要处理异常,下面是处理异常的方式 直接抛出去 package com.testIO; import java.io.*; /** * @author 林高禄 * @create 2020-05-12-14:42 */ public class IOExceptionDemo { public static void main(String[] args) throws IOException{ mathod(); ..

林高禄 9174

Centos7中安装了JDK8后java -version没有文件处理办法

如图,已经在Linux环境中配置好了jdk,但使用java -version查看时提示:没有那个文件或目录 解决办法是,Linux环境中执行:sudo yum install glibc.i686,如下图 执行完语句加载完成后就可以访问了。 ...

weixin_45021973的博客 799

JDK7和JDK9流中异常的处理

package com.learn.demo06.trycatch; import java.io.FileInputStream; import java.io.FileOutputStream; import java.io.IOException; /* JDK7的新特性 在try的后边可以增加一个(),在括号中可以定义流对象 那么这个流对象的作用域就在try中...

Leon_Jinhai_Sun的博客 239

IO流小结、练习案例(点名器、对象到集合再到文件、文件到集合改进版、集合到文件数据排序改进版、复制单级文件夹复制多级文件夹)、字节流字符流复制异常处理(try..catch…)JDK7优化版本异常处理

IO流小结 练习案例 点名器 思路: 创建字符缓冲输入流 创建ArrayList集合对象 调用字符缓冲输入流对象的方法读数据 把读到的字符串数据存储到集合中 释放资源 用Random类产生一个随机数,随机数的范围再:[0,集合长度) 把第6步产生的随机数作为索引到ArrayList集合中获取值 把第7步得到的数据输出在控制台 代码示例: ArrayList<String> demo = new ArrayList<String>(); BufferedReader bfr =

qq_46568687的博客 206

JDK7前后对I/O资源的处理对比

JDK7之前的处理 之前的入门练习,我们一直把IO异常抛出,实际开发中并不能这样处理,建议使用try…catch…finally 代码块,处理异常部分. 案例需求: 将readTest的内容copy到copyTest 代码使用演示 import java.io.FileReader; import java.io.FileWriter; import java.io.IOException; p...

charismaless的博客 179

JDK7和JDK9中关于文件流异常的新特性(重点)

package day09IoAndProperties; import java.io.*; public class TestIo { public static void main(String[] args) throws FileNotFoundException { //JDK 7 新特性 try(){...} catch {...} (不需要throws创建对象异常) try( //创建输入流对象 FileIn

m0_52646273的博客 121
上一篇: maven多模块工程打包部署
下一篇: guava常用简化操作
xb_smart
博客等级 码龄16年 124粉丝 74原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值