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学习笔记一的更多相关文章

  1. Java IO学习笔记:概念与原理

    Java IO学习笔记:概念与原理   一.概念   Java中对文件的操作是以流的方式进行的.流是Java内存中的一组有序数据序列.Java将数据从源(文件.内存.键盘.网络)读入到内存 中,形成了 ...

  2. Java IO学习笔记总结

    Java IO学习笔记总结 前言 前面的八篇文章详细的讲述了Java IO的操作方法,文章列表如下 基本的文件操作 字符流和字节流的操作 InputStreamReader和OutputStreamW ...

  3. Java IO学习笔记三

    Java IO学习笔记三 在整个IO包中,实际上就是分为字节流和字符流,但是除了这两个流之外,还存在了一组字节流-字符流的转换类. OutputStreamWriter:是Writer的子类,将输出的 ...

  4. Java IO学习笔记二

    Java IO学习笔记二 流的概念 在程序中所有的数据都是以流的方式进行传输或保存的,程序需要数据的时候要使用输入流读取数据,而当程序需要将一些数据保存起来的时候,就要使用输出流完成. 程序中的输入输 ...

  5. Java IO学习笔记一:为什么带Buffer的比不带Buffer的快

    作者:Grey 原文地址:Java IO学习笔记一:为什么带Buffer的比不带Buffer的快 Java中为什么BufferedReader,BufferedWriter要比FileReader 和 ...

  6. Java IO学习笔记二:DirectByteBuffer与HeapByteBuffer

    作者:Grey 原文地址:Java IO学习笔记二:DirectByteBuffer与HeapByteBuffer ByteBuffer.allocate()与ByteBuffer.allocateD ...

  7. Java IO学习笔记三:MMAP与RandomAccessFile

    作者:Grey 原文地址:Java IO学习笔记三:MMAP与RandomAccessFile 关于RandomAccessFile 相较于前面提到的BufferedReader/Writer和Fil ...

  8. Java IO学习笔记四:Socket基础

    作者:Grey 原文地址:Java IO学习笔记四:Socket基础 准备两个Linux实例(安装好jdk1.8),我准备的两个实例的ip地址分别为: io1实例:192.168.205.138 io ...

  9. Java IO学习笔记六:NIO到多路复用

    作者:Grey 原文地址:Java IO学习笔记六:NIO到多路复用 虽然NIO性能上比BIO要好,参考:Java IO学习笔记五:BIO到NIO 但是NIO也有问题,NIO服务端的示例代码中往往会包 ...

随机推荐

  1. Java常见快捷键

    1.Alt+/ 补充代码 2.shift+d 删除选中代码同时删除空格 3.shift+alt+R 改变所有与选中部分相同的字符串 4.ctrl+S 保存代码 5.ctrl+shift+F 格式化代码 ...

  2. [刷题]算法竞赛入门经典(第2版) 4-3/UVa220 - Othello

    书上具体所有题目:http://pan.baidu.com/s/1hssH0KO 代码:(Accepted,0 ms) //UVa 220 - Othello #include<iostream ...

  3. 《大型网站系统与JAVA中间件实践学习笔记》-1

    第一章:分布式系统介绍 定义:分布式系统是一组分布在网络上通过消息传递进行协作的计算机组成系统. 分布式系统的意义 升级单机处理能力的性价比越来越低 单机处理器能力存在瓶颈 处于稳定性和可用性考虑 阿 ...

  4. BM算法详解

    http://www-igm.univ-mlv.fr/~lecroq/string/node14.html http://www.cs.utexas.edu/users/moore/publicati ...

  5. Java7中的ForkJoin并发框架初探(上)——需求背景和设计原理

    原文:发表于 2013 年 8 月 26 日 由 三石 0. 处理器发展和需求背景 回想一下并发开发的初衷,其实可以说是有两点,或者说可以从两个方面看. 对于单核的处理器来说,在进行IO操作等比较费时 ...

  6. 简易RPC框架-学习使用

    *:first-child { margin-top: 0 !important; } body>*:last-child { margin-bottom: 0 !important; } /* ...

  7. hive、impala集成ldap

    1.概要 1.1 环境信息 hadoop:cdh5.10 os:centos6.7 user:root hive.impala已集成sentry 1.2 访问控制权限 这里通过使用openldap来控 ...

  8. SSH抛出org.apache.ibatis.exceptions.PersistenceException: 异常

    抛出的异常类容如下 如果遇到这个异常,那么肯定是你在配置事物切面时出错,或者是你的写的事物的方法名称没有和这里的配置对应: 你需要注意如下几点: 1.你的名称必须是以英文开头 2.在你用着事物方法的名 ...

  9. Linux下非root用户安装软件的一般流程:

    1. 获取源代码,一般是wget方式,ubuntu可以使用apt-get source来获取源代码. 2. 解压源代码,一般使用tar -zxvf xxx.tar.gz即可 3. 切换到解压后的目录, ...

  10. js实用方法记录-简单cookie操作

    js实用方法记录-简单cookie操作 设置cookie:setCookie(名称,值,保存时间,保存域); 获取cookie:setCookie(名称); 移除cookie:setCookie(名称 ...