ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

day23

2022-04-07 20:01:02  阅读:178  来源: 互联网

标签:文件 字节 boolean day23 文件夹 File public


File:

我们要想实现对文件IO操作,就必须知道硬盘上的文件表现形式,换句话,要想使用java操作硬盘上的文件内,就需要java映射到现实生活中对应的一个类,因为只有类才能创建对象,才能调用方法。java就提供了一个类给我们使用,这个类抽象的表示了硬盘上的各种文件
这个类叫做:File

File:文件和目录路径的抽象表示。目录在今后就代表一个文件夹的意思。

File类的构造方法:
public File(String pathname)
public File(String parent,String child)
public File(File parent,String child)

创建File对象的原因:
要想对文件或者文件夹进行操作,就要将其封装成一个File对象。然后调用该对象中的方法对文件或者文件夹进行操作。

创建功能
public boolean createNewFile() 创建一个新的文件
public boolean mkdir() 在指定目录下创建文件夹,如果目标文件夹已经存在,就不会再创建,返回false
public boolean mkdirs() 创建多级文件夹
今后,在开发的时候需要搞清楚,你是要创建文件还是创建文件夹

删除功能
public boolean delete() 删除文件或者文件夹
注意:要想删除一个文件夹,前提是要保证该文件夹不是空的

重命名功能
public boolean renameTo(File dest)
需要先创建目标File对象,才能重命名

判断功能
public boolean isDirectory() 判断目标是否是一个文件夹
public boolean isFile() 判断目标是否是一个文件
public boolean exists() 判断目标文件或者文件夹是否存在
public boolean canRead() 判断目标文件或者文件夹是否可读
public boolean canWrite() 判断目标文件或者文件夹是否可写
public boolean isHidden() 判断目标文件或者文件夹是否隐藏

绝对路径(完整路径):带有盘符的路径
相对路径:相对于一个目录开始(不带盘符的)

基本获取功能
public String getAbsolutePath() 获取该File对象的绝对路径
public String getPath()
获取传入File的路径(相对路径)
public String getName()
获取名字
public long length() 返回的是该文件或者文件夹所占的字节数
public long lastModified() 获取的是最后一次修改的时间||返回的是时间戳,精确到了毫秒

高级获取功能
public String[] list() 返回一个字符串数组,命名由此抽象路径名表示的目录中的文件和目录。将指定当前目录下的所有文件和文件夹的名称组成一个数组
public File[] listFiles()
获取指定当前目录下的所有文件和文件夹的所有东西,包括目录里面的东西

递归:

递归:方法定义中调用方法本身的现象

注意:
1、StringBuffer的对象.append().append().append() 这个不叫方法的递归,这个现象叫做方法的链式调用
2、Math.min(Min(a,b),c) 这个现象叫做方法嵌套调用,也不叫递归

递归的注意事项:
1、递归一定要有一个出口,结束条件,否则就是死递归
2、递归的次数不能太多,否则就会造成栈内存溢出
3、构造方法不能进行递归

字节流:

IO的分类:
流向:(以java程序为中心)
输入流 读取数据
输出流 写出数据

数据类型:
字节流:
字节输入流 读取数据 InputStream
字节输出流 写出数据 OutputStream
字符流:
字符输入流 读取数据 Reader
字符输出流 写出数据 Writer
如何区分使用字节流和字符流:
使用电脑自带的记事本打开
如果你能看懂,就用字符流。
如果你看不懂,就用字节流。
如果不知道用什么,就用字节流。

字节输出流:

通过观察API发现,OutputStream是抽象类,而我们知道抽象类是不能被实例化的。要想实例化,我们就必须找一个具体的子类。
--FileOutputStream

public FileOutputStream(File file) throws FileNotFoundException 创建文件输出流以写入由指定的File对象表示的文件。
public FileOutputStream(String name) throws FileNotFoundException
创建文件输出流以指定的名称写入文件。

1、创建对应字节输出流对象
2、调用对象中的方法写数据
3、释放资源

字节输出流操作步骤:
1、创建字节输出流对象
2、调用write()方法写入数据
3、释放资源
释放资源的原因:因为我们的IO操作是占用系统本身的资源去对文件做操作,如果不释放,程序还没有停止,这时候资源就会一直占用。可能会导致资源紧张甚至不够。

public void write(int b)
存储的是ASCII码值对应的字符数据
public void write(byte[] b)
存入的是字节数组形式
public void write(byte[] b,int off,int len) 从位于偏移量off的指定字节数组写入len字节到该文件输出流。

需要解决的几个问题:
1、没有换行,如何实现换行呢?
理论上,我们每写完一部分的时候,就写一个换行符进行换行
注意,每一个系统对应的换行不大一样
Windows:\r\n
Mac: \r
Linux: \n
2、每次运行写入的时候,会把上一次运行的数据进行覆盖,如何实现追加写入
追加:在原有的文件内容上继续添加一些新的内容
覆盖:将原有的文件内容删掉,再添加一些新的内容 //如果不添加后面的append参数的话,默认是false,不追加写入
//FileOutputStream fos = new FileOutputStream("out4.txt", true);

字节输入流:

字节输入流:InputStream
子类: FileInputStream
1、创建字节输入流对象
2、调用方法读取数据
3、释放资源

FileInputStream的构造方法:
FileInputStream(File file)
FileInputStream(String name)

字节输入流对象读取数据的两种方式:
public int read() 一个字节一个字节读取
public int read(byte[] b) 一次读取一个字节数组

 

标签:文件,字节,boolean,day23,文件夹,File,public
来源: https://www.cnblogs.com/cpfhome/p/16113987.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有