Java File

File
1先要定位文件

1)File类可以定位文件:进行删除,获取文本本身信息等操作.

2)但是不能读取书写文件内容.

2读写文件数据

IO流技术可以对硬盘的文件进行读写.

File类创建对象
方法名称说明public File(String pathname)根据文件路径创建文件对象public File(String parent, String child)从父路径名字符串和子路径名字符串创建文件对象public File(File parent, String child)根据父路径对应文件对象和子路径名字符串创建文件对象

绝对路径和相对路径
绝对路径:从盘符开始

File file1 = new File(“D:\\itheima\\a.txt”);

相对路径:不带盘符,默认直接到当前工程下的目录寻找文件

File file3 = new File(“模块名\\a.txt”);

1、File类的作用?
创建对象定位文件,可以删除、获取文件信息等。但是不能读写文件内容。

2、File类构建对象的方式 ?
File file = new File(“文件/文件/绝对路径/相对路径”);

3、绝对路径和相对路径是什么样的?
绝对路径是带盘符的,依赖当前系统。 相对路径是不带盘符的,默认相对到工程下开始寻找文件。

File类的判断文件类型,获取文件信息功能
方法名称 说明
public boolean isDirectory()
测试此抽象路径名表示的File是否为文件夹
public boolean isFile()
测试此抽象路径名表示的File是否为文件
public boolean exists()
测试此抽象路径名表示的File是否存在
public String getAbsolutePath()
getAbsolutePath
返回此抽象路径名的绝对路径名字符串
public String getPath()
将此抽象路径名转换为路径名字符串
public String getName()
返回由此抽象路径名表示的文件或文件夹的名称
public long lastModified()
返回文件最后修改的时间毫秒值

File类创建文件的功能
方法名称
说明
public boolean createNewFile()
创建一个新的空的文件
public boolean mkdir()
只能创建一级文件夹
public boolean mkdirs()
可以创建多级文件夹

File类删除文件的功能
public boolean delete()
删除由此抽象路径名表示的文件或空文件夹

delete方法默认只能删除文件和空文件夹。 delete方法直接删除不走回收站

File类遍历功能
public String[] list()
获取当前目录下所有的"一级文件名称"到一个字符串数组中去返回。
public File[] listFiles()(常用)
获取当前目录下所有的"一级文件对象"到一个文件对象数组中去返回(重点)

ListFiles方法注意事项
当调用者不存在时,返回null 当调用者是一个文件时,返回null 当调用者是一个空文件夹时,返回一个长度为0的数组 当调用者是一个有内容的文件夹时,将里面所有文件和文件夹的路径放在File数组中返回 当调用者是一个需要权限才能进入的文件夹时,返回null

方法递归
什么是方法递归
方法直接调用自己或者间接调用自己的形式称为方法递归.

递归做为一种算法在程序设计语言中广泛应用.

递归的形式
直接递归:方法自己调用自己。 间接递归:方法调用其他方法,其他方法又回调方法自己

方法递归存在的问题。
递归如果没有控制好终止,会出现递归死循环,导致栈内存溢出现象。

递归解决问题的思路:
把一个复杂的问题层层转换为一个与原问题相似的规模较小的问题来求解.

递归算法三要素大体可以总结为:
递归的公式: f(n) =  f(n-1) * n; 递归的终结点:f(1) 递归的方向必须走向终结点:

文件搜索用到了什么技术
递归,因为listFile只是搜索到了一级文件对象

字符集
字符集是多个字符的集合.

字符是各种文字和符号的总称.

ASCII编码
:包括了数字,英文,符号.

ASCII使用一个字节存储一个字符,一个字节是8位.



GBK
是中国自己的码表,完全兼容ASCII码表,包含英文字母,汉字,甚至于日韩文字.

一个英文字母占一个字节,一个汉字占两个字节.





Unicode字符集
Unicode万国码,容纳世界上大多数国家所有的常见文字和符号,

Unicode字符集有三种编码方式,将字符编码成对应的二进制。分别是:UTF-8、UTF-16、UTF-32编码方式



UTF-8编码特点:
UTF-8是针对Unicode的一种可变长度字符编码,完全兼容ASCII编码 其中兼容ASCII字符集的每一个字符编码占1个字节(字母、数字、符号) 中文一个汉字是占3个字节 希腊文、西里尔字母、亚美尼亚语、希伯来文、阿拉伯文、叙利亚文等字母则需要2字节编码 极少数使用的语言文字是占4个字节



编码解码过程

字符 到  二进制

String编码

byte[] getBytes()
使用平台的默认字符集将该 String编码为一系列字节,将结果存储到新的字节数组中
byte[] getBytes(String charsetName)
使用指定的字符集将该 String编码为一系列字节,将结果存储到新的字节数组中

String解码

String•(byte[] bytes)
通过使用平台的默认字符集解码指定的字节数组来构造新的 String
String•(byte[] bytes, String charsetName)
通过指定的字符集解码指定的字节数组来构造新的 String

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值