java中文件处理之图片

以下是The Well-Grounded Java Developer的草稿的修改后的片段。 它使您快速了解与以前版本相比,在Java 7中操作文件要容易得多。 通过使用新的Files类及其许多实用程序方法,您可以仅用一行代码就可以对文件执行以下操作:

  • 创造
  • 删除
  • 复制
  • 移动/重命名

提示关于Path的快速注释。 这篇文章假定您已经对新的Java 7 Path类有所了解,如果不熟悉的话,这里有个快速介绍! 路径是文件系统上位置的逻辑抽象,例如, “ c:\” 是 路径 ,“ ../ foobar.txt”一样

让我们从文件的创建和删除开始。

创建和删除文件

通过使用Files类中的简单帮助程序方法,您还可以创建文件并轻松删除它们。

提示如果要运行本节中的代码段,请用与文件系统匹配的实际路径替换实际路径!

以下代码段显示了使用Files.createFile(Path target)方法的基本文件创建。

Path target = Paths.get("D:\\Backup\\MyStuff.txt");
Path file = Files.createFile(target);

通常,您出于安全目的以及为了读取和/或写入和/或执行是否知道正在创建文件而想要在该文件上指定一些文件属性。 由于这取决于文件系统,因此您需要利用特定于文件系统的文件权限类及其帮助程序。

例如,用于POSIX兼容文件系统的PosixFilePermissionPosixFilePermissions 。 设置POSIX文件系统中的owner-group-all的读写示例如下。

Path target = Paths.get("D:\\Backup\\MyStuff.txt");
Set<PosixFilePermission> perms
= PosixFilePermissions.fromString("rw-rw-rw-");
FileAttribute<Set<PosixFilePermission>> attr
= PosixFilePermissions.asFileAttribute(perms);
Files.createFile(target, attr);

java.nio.file.attribute包包含提供的FilePermission类的列表。 在The Well-Grounded Java Developer的第2章中还进一步详细介绍了文件属性支持。

警告创建具有特定权限的文件时,请注意该文件的父目录正在执行的所有umask限制或限制性权限。 例如,您可能会发现,即使为新文件指定了rw-rw-rw ,由于这些限制,它实际上也被创建为rw-r–r–

删除文件要简单一些,可以通过简单的Files.delete(Path)方法执行。

Path target = Paths.get("D:\\Backup\\MyStuff.txt");
Files.delete(target);

接下来快速概述在文件系统中复制和移动文件。

复制和移动文件

通过使用Files类中的简单辅助方法,您可以轻松执行复制和移动操作。 下面的代码片段使用Files.copy(Path source,Path target)方法展示了一个基本副本。

Path source = Paths.get("C:\\My Documents\\Stuff.txt");
Path target = Paths.get("D:\\Backup\\MyStuff.txt");
Files.copy(source, target);

通常,您想在复制操作中指定一些选项。 在Java 7中,可以使用StandardCopyOption枚举来指定这些选项。 下一个示例使用覆盖(即替换现有)选项。

import static java.nio.file.StandardCopyOption.*;Path source = Paths.get("C:\\My Documents\\Stuff.txt");
Path target = Paths.get("D:\\Backup\\MyStuff.txt");
Files.copy(source, target, REPLACE_EXISTING);

其他复制选项包括COPY_ATTRIBUTES (复制文件属性)和ATOMIC_MOVE (确保移动操作的两面都成功或该操作被回滚)。移动操作与复制操作非常相似,并使用原子文件执行。 move(Path source,Path target)方法。

再次,您通常希望此移动带有一些复制选项,因此可以使用Files.move(Path source,Path target,CopyOptions ...)方法(请注意varargs的使用)。

在这种情况下,我们希望在移动源文件时保留其属性,并覆盖目标文件(如果存在)。

import static java.nio.file.StandardCopyOption.*;Path source = Paths.get("C:\\My Documents\\Stuff.txt");
Path target = Paths.get("D:\\Backup\\MyStuff.txt");
Files.move(source, target, REPLACE_EXISTING, COPY_ATTRIBUTES);

如您所见,新的用于文件操作的NIO.2 API易于使用,我们希望您喜欢这个小尝尝!

编码愉快! 不要忘记分享!

参考文献:

  • 在Java 7开发者博客上从我们的JCG合作伙伴处以Java 7 操作文件
  • 经验丰富的Java开发人员

相关文章:

  • JDK中的设计模式
  • Java内存模型-快速概述和注意事项
  • Java Fork / Join进行并行编程
  • 依赖注入–手动方式
  • 了解和扩展Java ClassLoader

翻译自: https://www.javacodegeeks.com/2011/09/manipulating-files-in-java-7.html

java中文件处理之图片

java中文件处理之图片_在Java 7中处理文件相关推荐

  1. java中把gui插入图片_在java中使用图片实现gui的美化.pdf

    在java中使用图片实现gui的美化.pdf 还剩 3页未读, 继续阅读 下载文档到电脑,马上远离加班熬夜! 亲,喜欢就下载吧,价低环保! 内容要点: 图形图像处理GRAPHICS AND IMAGE ...

  2. java 向 mysql数据库存储图片_基于java向mysql数据库中存取图片

    import java.io.*; import java.sql.*; import java.sql.DriverManager; import java.sql.ResultSet; impor ...

  3. 转jpg java源程序_将pdf文件转成图片并删除java源代码

    将pdf文件转成图片并删除java源代码/** * 将pdf转成img */ public static void changePdfToImg() { try { File file = new F ...

  4. xml文件转换成图片_如何把pdf文件转换成图片?

    pdf文件怎么转成JPG图片呢?相信有不少人在迷惑,可能还在想着截图等操作来完成转换,但如果是截图成JPG图片后的效果可能很差,并没有之前pdf文件那么清楚.那这样往往打印出来的效果也不怎么理想,那怎 ...

  5. python将一个文件夹下图片按比例分在两个文件夹下

    #!/usr/bin/env python # -*- coding:utf-8 -*- # 将一个文件夹下图片按比例分在两个文件夹下,比例改0.7这个值即可 import os import ran ...

  6. java 读取excel 图片_利用Java+POI 读写Excel文档向Excel中插入图片

    一.POI简介 Jakarta POI 是apache的子项目,目标是处理ole2对象.它提供了一组操纵Windows文档的Java API 目前比较成熟的是HSSF接口,处理MS Excel(97- ...

  7. java中怎么下载图片不显示图片_关于Java/Kotlin下载图片,图片打开不能显示问题探究...

    图片下载其实是个很简单的功能,通过IO流从在线地址获取流,之后将流输出到文件即可完成下载功能,但是,最近我发现某个网站中的图片下载成功,但是打开却是无法打开,这让我迷惑,百度上根本就没有人说清楚 今天 ...

  8. java中为按钮添加图片_我们可以在Java接口中为成员定义私有和受保护的修饰符吗?...

    java中为按钮添加图片 No, it is not possible to define private and protected modifiers for the members in int ...

  9. java中为按钮添加图片_如何在Java中为字符串添加双引号?

    java中为按钮添加图片 In Java, everything written in double-quotes is considered a string and the text writte ...

最新文章

  1. 如何在.NET中创建服务型组件
  2. Google排名第一的技术,引数十万人关注!网友:差点我就放弃了!
  3. 轻松学Pytorch-使用卷积神经网络实现图像分类
  4. Java避免创建不必要的对象
  5. 在python中、下列代码的输出是什么-Python 面试中 8 个必考问题
  6. 检测到USB设备插入写法1
  7. 国家电网和南方电网还傻傻分不清?
  8. 详解各类以太网标准10BASE-T/100BASE-T4/100BASE-FX/1000BASE-X等
  9. 大盘点: KubeCon EU 2019 应用管理领域的新看点!
  10. 计算机编程嘉兴,嘉兴自学电脑编程一对一
  11. Choerodon 的微服务之路(二):Choerodon 的微服务网关
  12. linux shell脚本中 if 条件判断
  13. linux关闭邮件提示错误,LINUX命令关闭 You have mail in /var/spool/mail/root邮件提醒功能...
  14. 产品经理基本功之PRD
  15. 高德地图根据经纬度生成位置定位图片(发送位置)
  16. java 如何将word 转换为ftl_使用FreeMarker导出word文档(支持导出图片)
  17. 大三上期末复习(网络安全物联网概论安全协议软件工程)
  18. unisoc常用命令集
  19. python中geometry_python arcgis Geometry
  20. 2018美团CodeM 题解

热门文章

  1. 刚刚,改造了下BaseDao……
  2. Redis(案例六:ZSet数据)
  3. JAVA---DOS命令学习
  4. bean交个spring和new比较区别
  5. python 列表生成表格_【转】Python 列表生成式
  6. http长/短轮询和WebSocket 的介绍和比较
  7. java 字符数组与字符串_用于字符串和数组的5种简单有效的Java技术
  8. lambda层保存模型出错_保存您的lambda,以备不时之需-保存到文件
  9. 普罗米修斯使用es数据库_用普罗米修斯和格拉法纳仪法来豪猪
  10. java中线程死锁及避免_如何避免Java线程中的死锁?