java.io中流的操作:字节流、字符流
2024-09-10 18:20:51
java.io中流的操作:字节流、字符流
(1)使用File类打开一个文件
(2)通过字节流或字符流的子类指定输出的位置
(3)进行读/写操作
(4)关闭输入/输出
1、字节流:主要是byte类型数据,以byte数组为准
输出数据:OutputStream类:字节输出流最大父类
输入数据:InputStream类
(1)
//第一步:使用File类打开电脑中的一个文档,文件不存在会自动创建
File f = new File("文件路径");
//第二步:通过字节流或字符流的子类指定输出的位置
OutputStream out = null;
out= new FileOutputStream(f);
//要输出的对象
String str = "Hello World";
//只能输出byte数组,所以需要将字符串变为byte数组
byte b[] =str.getBytes();
//将内容输出
out.write(b);
//关闭输出流
out.close();
(2)
//第一步:使用File类打开电脑中的一个文档
File f = new File("文件路径");
//第二步:通过字节流或字符流的子类指定读取的位置
InputStream input = null;
input= new FileInputStream(f);
//进行读操作,读到byte数组中,开辟大小为1024内存用来放数据
byte b[] = new byte[];
input.read(b);
//关闭输入流
input.close();
//把byte数组变为字符串输出
System.out.println("内容为:"+new String(b));
2、字符流
输出数据:Writer类
输入数据:Reader类
(1)
File f = new File("文件路径");
Writer out = null;
out= new FileWriter(f);
String str = "Hello World";
out.write(str);
out.close();
不需要将字符串变为byte数组之后再输出
(2)
//第一步:使用File类打开电脑中的一个文档
File f = new File("文件路径");
//第二步:通过字节流或字符流的子类指定读取的位置
Reader reader = null;
reader= new FileReader(f);
//进行读操作,读到byte数组中,开辟大小为1024内存用来放数据
char c[] = new char[];
reader.read(c);
//关闭输入流
reader.close();
//把byte数组变为字符串输出
System.out.println("内容为:"+new String(c));
区别:字符流操作时使用了缓冲区
缓冲区:关闭字符流时会强制性地将缓冲区中的内容进行输出,没有close(),缓冲区的内容是无法输出的,flush()方法会强制性清空缓冲区内容,然后输出数据
3、转换流——字符流<——>字节流
OutputStreamWriter:是Writer的子类,将输出的字符流变为字节流(存储在文件中的只能是字节形式的数据)
InputStreamReader:是Reader的子类,将输入的字节流变为字符流(比如:BufferReader操作的只能是字符流)
最新文章
- GitHub Pages 绑定二级域名
- .Net GridView 序号列
- js监听input是第几次click
- 一个可拖拽的DIV框框
- ACM: Find MaxXorSum 解题报告-字典树
- FreeMarker模板语法
- html,css所遇问题(一)
- JAVA基于AE调用GP实现泰森多边形
- Windows Minifilter驱动 - 调式 (4)
- C++编程练习(9)----“图的存储结构以及图的遍历“(邻接矩阵、深度优先遍历、广度优先遍历)
- github上fork了别人的项目后,再同步更新别人的提交
- Python+Selenium 自动化实现实例-处理分页(pagination)
- 判断exe执行结束,事件监听
- Mac定时关机、重启、休眠命令行
- linux中环境变量PATH设置错误,导致ls cd 等命令不能使用,提示:没有那个文件或目录
- sql新语句
- iOS 静态库代码混淆方案
- jenkins远程执行shell
- c++程序的多文件组织
- HTML 的 style 属性