Java IO学习笔记一
Java IO学习笔记一
File
File是文件和目录路径名的抽象表示形式,总的来说就是java创建删除文件目录的一个类库,但是作用不仅仅于此,详细见官方文档
构造函数
File(File parent, String child)根据parent抽象路径名和child路径名字符串创建一个新 File 实例。File(String pathname)通过将给定路径名字符串转换为抽象路径名来创建一个新 File 实例。File(String parent, String child)根据 parent 路径名字符串和child路径名字符串创建一个新File实例。File(URI uri)通过将给定的file: URI转换为一个抽象路径名来创建一个新的 File 实例。
实例
File file=new File("/tmp/demo"); //File(String pathname)
File file=new File("/tmp","demo"); //File(String parent, String child)
常用方法
字段
static String pathSeparator与系统有关的路径分隔符,通常是:static String separator与系统有关的默认名称分隔符,为了方便,它被表示为一个字符串。linux是/
File file=new File("/tmp"+File.separator+"demo"); //使用分隔符创建一个路径
方法摘要
boolean canExecute()测试文件或者目录是否是可执行的,测试可执行权限boolean canRead()测试可读权限boolean canWrite()测试可写权限boolean setExecutable(boolean executable)设置文件或者目录的执行权限setExecutable(boolean executable, boolean ownerOnly)设置执行权限,如果第二个为true那么只有创建这个文件的用户拥有执行权限boolean setReadable(boolean readable)设置可读的权限boolean setReadable(boolean readable, boolean ownerOnly)同上boolean setReadOnly()标记此抽象路径名指定的文件或目录,从而只能对其进行读操作。boolean setWritable(boolean writable)设置可写的权限boolean createNewFile()创建一个文件,这里创建的不是目录boolean mkdir()创建文件夹File getAbsoluteFile()返回此抽象路径名的绝对路径名形式。String getAbsolutePath()返回此抽象路径名的绝对路径名字符串。String getName()返回由此抽象路径名表示的文件或目录的名称。boolean isDirectory()测试此抽象路径名表示的文件是否是一个目录。boolean isFile()测试此抽象路径名表示的文件是否是一个标准文件。boolean isHidden()测试此抽象路径名指定的文件是否是一个隐藏文件。String[] list()返回一个字符串数组,这些字符串指定此抽象路径名表示的目录中的文件和目录。File[] listFiles()返回一个抽象路径名数组,这些路径名表示此抽象路径名表示的目录中的文件。
实例
创建文件
File file=new File("/tmp/demo.txt");
if(file.exists())//如果文件存在就删除这个文件
{
file.delete();
}
else
{
try{
file.createNewFile(); //创建一个文件
file.setExecutable(false); //设置执行权限
}catch (IOException e)
{
e.printStackTrace();
}
}
创建文件夹
File file=new File("/tmp","test");
if(file.exists())
{
if(file.isDirectory()) //如果是一个文件夹
{
System.out.println("这是一个文件夹");
file.delete();
}
else if(file.isFile()) //如果是一个文件
{
System.out.println("这是一个文件");
}
}
else
{
file.mkdir();
file.setWritable(false); //设置权限为不可读
}
列出全部文件
list
这个函数列出的是文件的名字并不是文件的路径
File f=new File("d:"+File.separator);
String[] str=f.list(); //这里列出的仅仅是文件的名字,并不是文件的路径
for(String s:str){
System.out.println(s);
}
listFiles
这个列出的是文件的绝对路径
File f=new File("d:"+File.separator);
File[] files=f.listFiles();
for(File file:files){
System.out.println(file);
}
参考文章
Java IO学习笔记一的更多相关文章
- Java IO学习笔记:概念与原理
Java IO学习笔记:概念与原理 一.概念 Java中对文件的操作是以流的方式进行的.流是Java内存中的一组有序数据序列.Java将数据从源(文件.内存.键盘.网络)读入到内存 中,形成了 ...
- Java IO学习笔记总结
Java IO学习笔记总结 前言 前面的八篇文章详细的讲述了Java IO的操作方法,文章列表如下 基本的文件操作 字符流和字节流的操作 InputStreamReader和OutputStreamW ...
- Java IO学习笔记三
Java IO学习笔记三 在整个IO包中,实际上就是分为字节流和字符流,但是除了这两个流之外,还存在了一组字节流-字符流的转换类. OutputStreamWriter:是Writer的子类,将输出的 ...
- Java IO学习笔记二
Java IO学习笔记二 流的概念 在程序中所有的数据都是以流的方式进行传输或保存的,程序需要数据的时候要使用输入流读取数据,而当程序需要将一些数据保存起来的时候,就要使用输出流完成. 程序中的输入输 ...
- Java IO学习笔记一:为什么带Buffer的比不带Buffer的快
作者:Grey 原文地址:Java IO学习笔记一:为什么带Buffer的比不带Buffer的快 Java中为什么BufferedReader,BufferedWriter要比FileReader 和 ...
- Java IO学习笔记二:DirectByteBuffer与HeapByteBuffer
作者:Grey 原文地址:Java IO学习笔记二:DirectByteBuffer与HeapByteBuffer ByteBuffer.allocate()与ByteBuffer.allocateD ...
- Java IO学习笔记三:MMAP与RandomAccessFile
作者:Grey 原文地址:Java IO学习笔记三:MMAP与RandomAccessFile 关于RandomAccessFile 相较于前面提到的BufferedReader/Writer和Fil ...
- Java IO学习笔记四:Socket基础
作者:Grey 原文地址:Java IO学习笔记四:Socket基础 准备两个Linux实例(安装好jdk1.8),我准备的两个实例的ip地址分别为: io1实例:192.168.205.138 io ...
- Java IO学习笔记六:NIO到多路复用
作者:Grey 原文地址:Java IO学习笔记六:NIO到多路复用 虽然NIO性能上比BIO要好,参考:Java IO学习笔记五:BIO到NIO 但是NIO也有问题,NIO服务端的示例代码中往往会包 ...
随机推荐
- AOJ/树二叉搜索树习题集
ALDS1_7_A-RootedTree. Description: A graph G = (V, E) is a data structure where V is a finite set of ...
- 如何使用MySQL触发器trigger
阅读目录:触发器trigger的使用 创建触发器 单一执行语句.多执行语句 new.old详解 查看触发器 删除触发器:慎用触发器,不用就删除 Q:什么是触发器? A: 触发器是与表有关的数据库对象, ...
- 玩一玩nodejs--一个简单的在线实时填表应用
学习nodejs三天,入了个门,感觉他和jsp.php还是存在较大的差别.本文首先复习这些天学的一些知识点,然后谈一下如何一步一步到做一个在线实时填表的小应用,进一步巩固一下这些个知识点.这里先简单介 ...
- HDU4704Sum 费马小定理+大数取模
题目链接: http://acm.hdu.edu.cn/showproblem.php?pid=4704 题目大意: 看似复杂,其实就是求整数n的划分数,4=1+1+2和4=1+2+1是不同的.因而可 ...
- Jdk1.6 JUC源码解析(6)-locks-AbstractQueuedSynchronizer
功能简介: AbstractQueuedSynchronizer(以下简称AQS)是Java并发包提供的一个同步基础机制,是并发包中实现Lock和其他同步机制(如:Semaphore.CountDow ...
- mybatis中传入一个List集合作为查询条件的参数
如果有一个查询参数有多个,用一个List集合传进去,这个mapper文件可以这么写 <select id="queryList04" resultType="map ...
- conda 使用清华大学开源软件镜像
conda 使用清华大学开源软件镜像 Anaconda的安装步骤不在本文的讨论中,我们主要是学习一下如何配置conda的镜像,以及一些问题的解决过程 配置镜像 在conda安装好之后,默认的镜像是官方 ...
- MYBATIS 简单整理与回顾
这两天简单整理了一下MyBatis 相关api和jar包这里提供一个下载地址,免得找了 链接:http://pan.baidu.com/s/1jIl1KaE 密码:d2yl A.简单搭建跑项目 2.进 ...
- 关于DB2死锁处理
昨天在修改字段类型的时候引起了死锁,我一般会使用REORG命令处理,在控制中心下 只需要执行 REORG TABLE TABLENAME 命令就可以, 但是在 RazorSQL 下执行此命令会报缺失 ...
- Spring Security教程系列(一)基础篇-2
第 4 章 自定义登陆页面 Spring Security虽然默认提供了一个登陆页面,但是这个页面实在太简陋了,只有在快速演示时才有可能它做系统的登陆页面,实际开发时无论是从美观还是实用性角度考虑,我 ...