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. JQuery hover鼠标变换

    一般而言,我们为非按钮.链接等元素添加hover事件时,虽然能够处理悬停事件,但是鼠标却并没有变化,会造成悬停事件不明显的结果,为此,我们可以添加CSS样式cursor:pointer,使得该元素的悬 ...

  2. 1008 Elevator

    Problem Description The highest building in our city has only one elevator. A request list is made u ...

  3. 解决xmapp中Apache端口号占用问题

    [原]解决 "安装xmapp后Apache不能正常启动" 问题 小伙伴们安装xmapp后发现Apache不能正常开启,下面给出了不同情况的解决办法,可以分为以下几种情况分析问题: ...

  4. 使用bootstrap的插件实现模态框效果

    在上一篇文章中,我们使用 js+css 实现了模态框效果,在理解了模态框的基本实现方法和实现效果后,我们就要寻找更快捷的方法,又快又好的来完成模态框开发需求,从而节约时间,提高效率.一个好的轮子,不仅 ...

  5. Hopfield神经网络实现污染字体的识别

    这个网络的内部使用的是hebb学习规则 贴上两段代码: package geym.nn.hopfiled; import java.util.Arrays; import org.neuroph.co ...

  6. 关于爬楼梯的lintcode代码

    讲真的,这个我只会用递归去做,但是lintcode上面超时,所以只有在网上找了个动态规划的,虽然这个程序懂了,但是我觉得还是挺不容易的真正弄懂的话-- class Solution {public:  ...

  7. Python的RSA加密和PBE加密

    最近在写接口的时候,遇到了需要使用RSA加密和PBE加密的情况,对方公司提供的DEMO都是JAVA的,我需要用python来实现. 在网上搜了一下,python的RSA加密这块写的还是比较多的,但是P ...

  8. OpenStack Newton版本Ceph集成部署记录

    2017年2月,OpenStack Ocata版本正式release,就此记录上一版本 Newton 结合Ceph Jewel版的部署实践.宿主机操作系统为CentOS 7.2 . 初级版: 192. ...

  9. .NET面试题系列[17] - 多线程概念(2)

    线程概念 线程和进程的区别 进程是应用程序的一个实例要使用的资源的一个集合.进程通过虚拟内存地址空间进行隔离,确保各个进程之间不会相互影响.同一个进程中的各个线程之间共享进程拥有的所有资源. 线程是系 ...

  10. 清理我的 Mac

    在Macbook使用久之后,会发现本来还富裕的硬盘,变得越来越少,尤其现在Macbook使用容量很小的固态硬盘.在此种情况下,该如何清理Macbook垃圾文件,以保证Macbook有足够空间做其他事情 ...