黑马程序员_Java第20天知识总结_File类_Properties_打印流_文件切割合并

这篇博客总结了Java中File类的主要方法,包括创建、删除、判断和获取文件信息等操作,并探讨了递归在列举目录内容中的应用。此外,文章介绍了Properties类在处理键值对配置文件中的作用,以及如何利用打印流打印数据。还涉及了文件的切割和合并实战,强调了在处理大文件时的注意事项。
摘要由CSDN通过智能技术生成

------- android培训java培训、期待与您交流! ----------

File类常见方法:
1,创建。
boolean createNewFile():在指定位置创建文件,如果该文件已经存在,则不创建,返回false。
和输出流不一样,输出流对象一建立创建文件。而且文件已经存在,会覆盖。


boolean mkdir():创建文件夹。
boolean mkdirs():创建多级文件夹。
2,删除。
boolean delete():删除失败返回false。如果文件正在被使用,则删除不了返回falsel。
void deleteOnExit();在程序退出时删除指定文件。




3,判断。
boolean exists() :文件是否存在.
isFile():
isDirectory();
isHidden();
canExecute()
isAbsolute();


4,获取信息。
getName():
getPath():
getParent()://该方法返回的是绝对路径中的父目录。如果获取的是相对路径,返回null。
//如果相对路径中有上一层目录那么该目录就是返回结果。


getAbsolutePath() 
long lastModified() 
long length() 


static File[] listRoots() 
          列出可用的文件系统根。 


String[] list() 
          返回一个字符串数组,这些字符串指定此抽象路径名表示的目录中的文件和目录。 
 //调用list方法的file对象必须是封装了一个目录。该目录还必须存在。


boolean renameTo(File dest) 
          重新命名此抽象路径名表示的文件。 






//创建File对象
//将a.txt封装成file对象。可以将已有的和为出现的文件或者文件夹封装成对象。




//记住在判断文件对象是否是文件或者目的时,必须要先判断该文件对象封装的内容是否存在。
//通过exists判断。






列出指定目录下文件或者文件夹,包含子目录中的内容。
也就是列出指定目录下所有内容。


因为目录中还有目录,只要使用同一个列出目录功能的函数完成即可。
在列出过程中出现的还是目录的话,还可以再次调用本功能。
也就是函数自身调用自身。
这种表现形式,或者编程手法,称为递归。


递归要注意:
1,限定条件。


2,要注意递归的次数。尽量避免内存溢出。








删除一个带内容的目录。
删除原理:
在window中,删除目录从里面往外删除的。


既然是从里往外删除。就需要用到递归。






练习
将一个指定目录下的java文件的绝对路径,存储到一个文本文件中。
建立一个java文件列表文件。


思路:
1,对指定的目录进行递归。
2,获取递归过程所以的java文件的路径。
3,将这些路径存储到集合中。
4,将集合中的数据写入到一个文件中。






Properties是hashtable的子类。
也就是说它具备map集合的特点。而且它里面存储的键值对都是字符串。


是集合中和IO技术相结合的集合容器。


该对象的特点:可以用于键值对形式的配置文件。


那么在加载数据时,需要数据有固定格式:键=值。




//演示,如何将流中的数据存储到集合中。
//想要将info.txt中键值数据存到集合中进行操作。
/*
1,用一个流和info.txt文件关联。
2,读取一行数据,将该行数据用"="进行切割。
3,等号左边作为键,右边作为值。存入到Properties集合中即可。


*/




练习:限制程序运行次数。当运行次数到达5次时,给出,请您注册的提示。并不再让该程序执行。






用于记录应用程序运行次数。
如果使用次数已到,那么给出注册提示。


很容易想到的是:计数器。
可是该计数器定义在程序中,随着程序的运行而在内存中存在,并进行自增。
可是随着该应用程序的退出,该计数器也在内存中消失了。


下一次在启动该程序,又重新开始从0计数。
这样不是我们想要的。


程序即使结束,该计数器的值也存在。
下次程序启动在会先加载该计数器的值并加1后在重新存储起来。


所以要建立一个配置文件。用于记录该软件的使用次数。


该配置文件使用键值对的形式。
这样便于阅读数据,并操作数据。


键值对数据是map集合。
数据是以文件形式存储,使用io技术。
那么map+io -->properties.


配置文件可以实现应用程序数据的共享。










打印流:
该流提供了打印方法,可以将各种数据类型的数据都原样打印。


字节打印流:
PrintStream
构造函数可以接收的参数类型:
1,file对象。File
2,字符串路径。String
3,字节输出流。OutputStream






字符打印流:
PrintWriter
构造函数可以接收的参数类型:
1,file对象。File
2,字符串路径。String
3,字节输出流。OutputStream
4,字符输出流,Writer。








合并流
文件切割合并练习






注意:
如果要切割电影文件,定义的字节数组不能太大。而是往文件里装数据,每装一次数据获取一次文件的大小,装到什么时候?
定义一个计数器,第一次装1MB,第二次装1MB,第三次装1MB,当装到了等于100MB的时候,这时候再重新创建一个输出流对象。
再往另外一个文件里写100MB数据,分别去创建,一个流对象操作100MB数据操作完100MB数据这个流对象就结束,再重新启动另外一个流对象去操作100MB数据
就可以了。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值