保存数据的地方。
1)常见文件对象的相关构造器和方法: 当进行File file = new File(filePath);只是在内存上有一个文件对象; 只有file.createNewFile();才会在磁盘创建文件
获取文件的相关信息: utf8中,一个汉字是三个字节,所以当用字节流的read()方法一个字节一个字节的读取的时候,将会出现乱码的情况 2)目录的删除和增加:
a)用来删除文件或者文件夹
b)文件夹的创建:
流的分类: 字节流适用于声音等文件的传输,因为字节流是一个字节一个字节的读取,可以保证无损; 字符流虽然读取的效率高些,但更适用于文本的读取; 注意:inpuStream,OutputStream,Reader,Writer全是抽象类,创建对象时候要实现他们的子类即可。 1)InputSream输入流:
字节输入流:文件–》程序 a)fileInputStream.read()一个一个字节读取 (注意:输出的时候不能像如图框选的那样输出,因为read()读取的是下一个字符了) b)改进,使用fileInputStream.read(buffer) 2)OutputStream 注意:如果使用OutputStream写入数据时候,文件不存在将自动进行文件的创建; 以下是写入数据的几种方式, 当使用红框的语句的时候,写入数据会追加在文件中; 否则,将覆盖文件的内容 完成文件的拷贝:(需要输入流和输出流的综合应用)
3)FileReader:
1)FileReader的使用:
4) FileWriter:
使用filewriter后,必须关闭(close)或者刷新(flush),否则写入不到指定文件 a)FileWriter的使用: 使用filewriter后,必须关闭(close)或者刷新(flush),否则写入不到指定文件 close()相当于flush()+关闭
1)节点流:直接读取数据源的流
2)处理流:对节点流进行包装
例如BufferReader: readLine()是按行读取: 当返回null时候,表示文件读取完毕; 关闭流的时候,这里只需要关闭BufferReader,因为底层会自动去关闭节点流;
注意:如果需要追加在文件的话,是在节点流进行设置; newLine()插入一个换行符
两者的区别与联系:
BufferReader和BufferWriter实现文件拷贝: 注意:BufferReader和BufferWriter是安装字符操作; 不要操作二进制文件(声音,视频,doc,pdf,等等),可能会造成文件损坏
BufferedOutputStream和BufferedInputStream实现拷贝图片: 当然,除此之外,BufferedOutputStream和BufferedInputStream也可以实现文本的拷贝;
对象处理流:专门处理对象的流,专门把对象保存到文件中,并且能够从文件中恢复; 序列化:就是保存数据的时候,保存数据的值和数据类型; 标记接口:没有任何方法
1)ObjectInputStream:(也是包装流) 示例:
2)ObjectOutputStream:
示例: 序列化之后,保存的文件格式,不是纯文本,而是按照他的格式来存储
当反序列化的时候需要用到getName();toString()等方法的时候,序列化也要一并把这些方法存储进行; 对象流注意事项:
标准输入,从键盘是获取:Scanner scanner = new Sanner(System.in);
InputStreamReader:字节流转化(包装)为字符流;
1)**OutputStreamReader:**字节流转化(包装)为字符流;
(只有输出流,没有输入流) PrintStream和PrintWriter(可以把信息打印到文件里面)
1)PrintStream
2)PrintWriter PrintWriter可以传入一个输出流,这里System.out是标准输出
1)传统的处理方法(使用处理流加载配置文件),不方便: 2)Properties方式:
使用道具 举报
本版积分规则 发表回复 回帖并转播 回帖后跳转到最后一页
谢谢您为社区发展做出的不可磨灭的贡献!!
您为论坛做出了特殊贡献,谢谢您!
辛劳地为论坛付出劳动,收获快乐,感谢您!
拥有帐号并登录即可获得此勋章.
粉丝数达到100即可获得此勋章.
创始人
2025-3-4
2025-3-2
中国红客联盟公众号
联系站长QQ:5520533