java中文件处理之图片_在Java 7中处理文件

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中文件处理之图片

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/359544.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

java实时记录在线人数

1.配置过滤器 <listener> <listener-class>com.listener.SessionCount</listener-class > </listener> 2.登陆时记录 package com.insigma.common.listener; import java.util.HashMap; import java.util.HashSet; import java.util.Map.Entr…

检讨程序猿

程序员变程序猿&#xff0c;这是个中国问题。多年前&#xff0c;浦东某开发区一个年轻的编程员因病去世&#xff0c;他母亲从四川赴沪奔丧&#xff0c;清理遗物时&#xff0c;她发现儿子床垫下都是钱&#xff0c;老人家痛哭失声&#xff0c;她说&#xff0c;你们看呐&#xff0…

在Java 8中使用Rhino

Java将Nashorn作为JSR 223的新JavaScript实现&#xff08;javax.scripting&#xff09;。 尽管这无疑是个好消息&#xff08;通过直接生成Java代码&#xff0c;Nashorn比Rhino快得多&#xff09;&#xff0c;但它也带来了一些挑战&#xff1a; Nashorn与Rhino并非100&#xff…

java复制单个文件

/*org.apache.commons.io.FileUtils:java文件工具类*/ String targetPath"/xxx/targetfile.pdf";//已知文件全路径 String sourcePath/xxx/sourcefile.pdf";//复制文件全路径 File fnew File(targetPath); try { if(!f.exists()) { …

FTP服务器的搭建与安全配置

FTP可以说是Internet上使用非常广泛的一种通讯协议了。它工作在OSI模型的第7层&#xff0c;是TCP/IP的一种具体应用。FTP采用基于TCP的可靠连接&#xff1a;监听21端口来等待控制连接请求&#xff0c;当连接建立后&#xff0c;采用20号端口来建立数据传输通道。 FTP中使用的一些…

C#值类型以及默认值记录下

C#的值类型有bool,byte,sbyte,decimal,double,float,int,uint,long,string等 如果我们擅长使用默认值&#xff0c;可以帮助我们减少带来赋值及代码编写. 比如我我经常赋值&#xff1a; int i0;下面都是各个值类型的默认值&#xff1a; bool>false byte,sbyte>0 int,uint,…

java泛型视频教程_Java泛型快速教程

java泛型视频教程泛型是Java SE 5.0引入的一种Java功能&#xff0c;在其发布几年后&#xff0c;我发誓那里的每个Java程序员不仅会听说过&#xff0c;而且已经使用过。 关于Java泛型&#xff0c;有很多免费和商业资源&#xff0c;而我使用的最佳资源是&#xff1a; Java教程 …

Windows上的Oracle Java

我最近为基于Windows 7的笔记本电脑下载了JDK 9的早期访问版本 &#xff08;内部版本68 &#xff09;。 由于这是早期版本&#xff0c;因此当自动安装在笔记本电脑上安装主要Java Runtime Environment&#xff08;JRE&#xff09;引入了一些不太理想的问题时&#xff0c;我并不…

DM oracle Mysql 查询数据库表和字段

-----------------------------------------------------ORALCE、DM select * from user_tab_comments;--查询当前用户下的表注释 select * from user_col_comments;--查询当前用户下的字段注释 select * from dba_tables ;--查询数据库实例下的表 属性 select * from dba_t…

java synchronized 对指定代码添加锁-简单样例

1:对静态代码添加锁 private final static Object syncLock new Object(); // 相当于线程锁,用于线程安全 public static int n0; public static void main(String[] args) { synchronized (syncLock){//锁 for(int i0;i<100;i) { n; Syst…

使用无锁的方式和有锁的方式的程序性能对比

这里分别使用有锁和无锁两种方式&#xff0c;对一个数值进行增加&#xff0c;一直增加到100000&#xff0c;然后输出使用时间的长短。 1 import java.util.concurrent.ExecutorService;2 import java.util.concurrent.Executors;3 import java.util.concurrent.TimeUnit;4 impo…

java pgp_Java相当好的隐私(PGP)

java pgp公钥加密 这篇文章讨论了PGP或“很好的隐私”。 PGP是常规加密和公用密钥加密的混合实现。 在详细介绍PGP之前&#xff0c;让我们先谈谈公钥加密。 与其他任何加密技术一样&#xff0c;公钥加密解决了通过不安全介质传输安全数据的问题。 即互联网。 结果&#xff0c;…

extjs弹出窗口查看文本内容-new Ext.Window

代码样例&#xff1a; function processscan(){ var text时间 用户 操作<br> 时间 用户 操作<br> 时间 用户 操作; var win new Ext.Window({ layout: fit, width: 700, height: 600, closeAction: hide, dra…

MySql默认编码所造成的乱码麻烦1.222

1、前言 MySQL在安装时&#xff0c;最后的一步&#xff0c;会让你选择MySQL服务器及客户端、数据库、连接接口的默认编码。通常可选择 UTF8和GB2312. 但是&#xff0c;如果你选择了utf8的时候&#xff0c;恰好你要从另一个数据库上迁移一个gb2312编码格式的数据库过来&#xff…

jquery(js) 增加 删除 修改属性样式、元素内容

引入jquery.js 1.增加或修改样式 $(#id).css(display,none);--根据id设置隐藏 2.$("#id").css({"background-color":"yellow","font-size":"200%"}); 3.增加或修改属性 $(#id).attr(readonly,true);--根据id设置标签属性…

构建自动化面板

上周二&#xff0c;我作为持续讨论&#xff08;&#xff03;c9d9&#xff09;的一部分&#xff0c;参加了一个关于Build Automation主题的在线讨论会&#xff0c;这是一系列有关敏捷&#xff0c;持续交付和DevOps的社区讨论会。 自动化构建流程面临许多挑战&#xff0c;包括第三…

Ioc Autofac心得

对于这个容器注入&#xff0c;个人也不是很熟悉&#xff0c;很多还不懂&#xff0c;只会基本的操作&#xff0c;几天把它记录下来&#xff0c;说不定以后帮助就大了呢&#xff0c;这方面跟安卓差距还是挺大的 下面记录下应用的流程 步骤&#xff1a; 1.添加应用 2.重写工厂&…

开启关闭mysql日志

//mysql开启sql日志 SET GLOBAL log_output TABLE;SET GLOBAL general_log ON; //mysql关闭sql日志 SET GLOBAL log_output TABLE; SET GLOBAL general_log OFF; ---查询mysql运行过的sql SELECT * from mysql.general_log ORDER BY event_time DESC;

深入学习Web Service系列----异步开发模式

概述 在本篇随笔中&#xff0c;通过一些简单的示例来说一下Web Service中的异步调用模式。调用Web Service方法有两种方式&#xff0c;同步调用和异步调用。同步调用是程序继续执行前等候调用的完成&#xff0c;而异步调用在后台继续时&#xff0c;程序也继续执行&#xff0c;不…

java 实现excel样式设置(居中、字体、大小、换行、合并行,列宽、指定特定字符串样式等)

HSSFWorkbook workbook new HSSFWorkbook(); Sheet sheet workbook.createSheet(); sheet.setColumnWidth(0, 30*256);//设置当前sheet页第一列宽度 sheet.setColumnWidth(1, 70*256);//第二列宽度 CellStyle style workbook.createCellStyle(); Font font workbook.cre…