黑马程序员_Java基础4

本文详细介绍了Java中IO流的基本操作方法,包括选择合适的流对象、处理文本文件、使用缓冲流提高效率等内容。同时,还介绍了如何使用转换流指定编码表进行文本的读取和存储,以及PrintStream类的使用技巧。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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

 

IO流的操作规律:
在选择IO流对象的时候,“三个明确”,来判断使用什么流对象。
1.明确源和目的地: *
    源:输入流。     InputSteam   Reader
    目的地:输出流   OutputStream Writer
2.明确操作的数据是否是文本文件: *
    是:使用字符流
    否:使用字节流
3.明确设备对象:
    源设备:内存,硬盘,键盘
    目的设备:内存,硬盘,控制台
明确以上操作对象之后,再考虑是否需要提高效率,如果需要,则使用对应的缓冲流技术即可。

扩展:按指定编码表读取/存储文本
为了实现此需求,需要使用IO转换流,转换流可以根据指定编码集转换字符。
InputStreamReader(InputStream in, String charsetName);
OutputStreamReader(OutputStream out, String charsetName);

理解:编码与解码
通俗地理解就是:
将能看懂的文字变成0101数据,就是编码;
将看不懂的0101数据,变成能看懂的文字,就是解码。
稍微确切地说:
将字符按照指定字符集进行数据存储、写入到文件里,就是编码;
将文件里的数据按照指定字符集进行读取、显示,就是解码。

 

PrintStream类
此类是字节输出流OutputStream和FileOutputStream的子类,既可以用于控制台打印,也可以向目的地输出字节数据。
但是在需要写入字符而不是字节的情况下,应该使用PrintWriter类。
以下两个方法用于改变标准的输入/输出流设备
System.setIn(InputStream in)  重新定义System类的标准输入流
System.setOut(PrintStream out) 重新定义System类的标准输出流

扩展:获取系统信息,并打印到文本文件
Properties props = System.getProperties();
//props.list(new PrintStream("D:\\sysInfo.txt"));
props.list(new PrintWriter(new FileOutputStream("D:\\sysInfo.txt"),true));

File类 *
此类位于java.io包下,用于封装指定路径或文件名的 文件或文件夹对象
常用构造函数:
File(File parent, String child)
File(String filName/pathName)
File(String parent, String child)
常用字段:
static String separator 跨平的分隔符
常用方法分类:
----------------
创建
构造函数 File(String filename)
boolean createNewFile()
----------------
删除
boolean delete() 
void deleteOnExit() 当程序退出时删除File,即使程序发生异常,也会执行此操作。
----------------
判断
boolean exits() 文件是否存在
boolean mkdir()  创建目录/文件夹,只能创建一级目录
boolean mkdirs() 创建目录文件夹,能创建多级目录
判断文件对象是否是文件或目录时,必须先判断此文件是否存在
boolean isDirectory() 是否是目录/文件夹
boolean isFile()  是否是文件
boolean isHidden() 是否为隐藏文件
boolean isAbsolute() 是否是绝对路径
boolean canRead()  是否可读
boolean canWrite() 是否可写
----------------
获取信息
String getName() 获取文件名
String getPath() 获取相对路径
String getParent() 获取父目录
String getAbsolutePath() 获取绝对路径
long lastModified() 获取文件的最后修改时间
long length() 获取文件的长度
File[] listRoots() 获取系统所有根目录,即有效盘符
String[] list(); 获取指定路径或文件夹下的文件列表
调用list方法的File对象 必须保证封装了一个文件夹,而且此文件夹必须是存在的。
----------------
修改文件名
boolean renameTo(File name);
----------------
文件过滤:
File[] listFiles(FilenameFilter filter, String name)  按指定文件过滤器,对文件进行过滤操作。
list(FilenameFilter filter, String name) 对指定目录下的文件进行 过滤

 

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

详情请查看:http://edu.youkuaiyun.com/heima

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值