学习目标:

熟练掌握IO流的基本实现方式

例题:

字节输出流

代码如下:

public class OutputStreamDemo01 {
public static void main(String[] args) throws IOException {
//1):创建源或者目标对象
File file = new File("填你要写入文件的绝对路劲/相对路径,后面都一样,不再提示,例如:G:\\workspace\\test.txt");
//2):创建IO流对象
OutputStream outputStream = new FileOutputStream(file);
//3):具体的IO操作
outputStream.write("12".getBytes()); // 写入一个字节数组
outputStream.write(122); // 写入一个整形数字,会被转化成Unicode码
outputStream.write(new byte[]{'a', 'g', 'a'}); // 传入字节数组
//4):关闭资源
outputStream.close();
}
}

运行结果:

12zaga

字节输入流

代码如下:

public class InputStreamDemo01 {
public static void main(String[] args) throws IOException {
//1):创建源或者目标对象
File file = new File("G:\\aaa.txt");
//2):创建IO流对象
InputStream inputStream = new FileInputStream(file);
//3):具体的IO操作
byte[] buffer = new byte[(int) file.length()];
int len = 0;
while((len = inputStream.read(buffer)) != -1) {
String str = new String(buffer, 0, len);
System.out.println("str = " + str);
}
//4):释放资源
inputStream.close();
}
}

运行结果:

"C:\Program Files\Java\jdk-11.0.9\bin\java.exe" "-"
str = ZafdsZAfaF
Process finished with exit code 0

字符输入流

代码如下:

public class FileReaderDemo01 {
public static void main(String[] args) throws IOException {
// 1)创建file对象,确定要操作的文件
File file = new File("G:\\aaa.txt");
// 2)获取字符流
// FileleReader reader = new FileReader(file); (直接获取的方式)
// 桥接的方式
InputStream in = new FileInputStream(file);
Reader reader = new InputStreamReader(in);
char[] buffer = new char[1024];
// 如果文件长度小于buffer数组长度,则第一次读取len长度为buffer的长度,第二次读取为-1
// 如果文件长度大于buffer数组长度,则第一次读取len长度为buffer的长度,第二次读取继续判断剩余文件长度,直到返回-1
int len = reader.read(buffer, 0, buffer.length);
while (len > 0) {
System.out.println(Arrays.toString(Arrays.copyOf(buffer, len)));
System.out.println("readLength: " + len);
len = reader.read(buffer, 0, buffer.length);
}
// 3)释放资源
reader.close();
}
}

运行结果:

"C:\Program Files\Java\jdk-11.0.9\bin\java.exe"
[Z, a, f, d, s, Z, A, f, a, F]
readLength: 10 Process finished with exit code 0

字符输出流

代码如下:

public class FileWriterDemo01 {
public static void main(String[] args) throws IOException {
//1):创建源或者目标对象
File file = new File("G:\\aaa.txt");
//2):创建IO流对象
FileWriter out = new FileWriter(file);
//3):具体的IO操作
out.write('光');//输出A
out.write('头');//输出B
out.write('强');//输出C
out.write(':');//输出D
out.write(' ');//输出D
String str = "众里寻他千百度,蓦然回首,那人却在,灯火阑珊处。";
out.write(str.toCharArray());
out.write(str);//String的本质就是char[]
//4):关闭资源(勿忘)
out.close(); }
}

运行结果:

光头强: 众里寻他千百度,蓦然回首,那人却在,灯火阑珊处。众里寻他千百度,蓦然回首,那人却在,灯火阑珊处。

# 总结:
以上就是IO流的简单实现,代码仅供参考。

IO流的简单实现的更多相关文章

  1. Java开发笔记(九十一)IO流处理简单的数据压缩

    前面介绍的文件I/O,不管是写入文本还是写入对象,文件中的数据基本是原来的模样,用记事本之类的文本编辑软件都能浏览个大概.这么存储数据,要说方便确实方便,只是不够经济划算,原因有二:其一,写入的数据可 ...

  2. AJPFX关于IO流的简单总结

    IO流的分类:1.根据流的数据对象来分:高端流:所有的内存中的流都是高端流,比如:InputStreamReader  低端流:所有的外界设备中的流都是低端流,比如InputStream,Output ...

  3. JAVA IO流的简单总结+收集日志异常信息

    1.字节流: IuputStream 所有字节输出流的超类 . 抽象类 ---- FileInputStream ---- BufferedInputStream:提供数据的读取效率,拓展方法(内部维 ...

  4. IO流实现简单的文件的剪切

    思路: 判断 即将 复制的文件是文件夹还是文件 遍历需要复制的源文件夹 如果是文件夹,就通过流创建一个同样的子文件夹 如果是文件,就复制过去 接下来上代码 public class Demo1 { p ...

  5. IO流2

    一.IO流简介及分类 1.IO流简介 IO流: 简单理解数据从一个地方流向另外一个地方 2.IO流分类 按照数据流动的方向 分为  输入流和输出流 按照数据流动的单位分为   字节流和字符流 二.四大 ...

  6. java基础之IO流及递归理解

    一.IO流(简单理解是input/output流,数据流内存到磁盘或者从磁盘到内存等) 二.File类(就是操作文件和文件夹的) 1.FIleFile类构造方法 注意:通过构造方法创建的file对象是 ...

  7. java的IO流初探

    DEMO代码: /* * 文件IO流的简单演示 */ package com.IO; import java.io.*; public class Demo_IO_1 { /** * @param a ...

  8. 什么是IO流

    先看一段百度上的解释: 当然:如果你看不懂,那么你只需要记住下面3句话. 1. (1).我们知道,每个人家里喝的水都是从自来水厂来的,自来水厂的水又是从水源地来的, (2).水是通过水管来的. (3) ...

  9. java 20 - 4 IO流概述和一个简单例子解析

    IO流的分类:  流向: 输入流 读取数据  输出流 写出数据 数据类型:  字节流  字节输入流 读取数据 InputStream  字节输出流 写出数据 OutputStream  字符流  字符 ...

随机推荐

  1. jmeter之如何减负-实现稳定超高并发测试(性能调优)之正确添加监听器

    jmeter之如何减负-实现稳定超高并发测试(性能调优)在测试过程中,初学者使用工具不当,添加众多监控组件,非常想看到实时报告,跑不了一会,jmeter就卡死,只得重启 下面来总结下如何正确使用jme ...

  2. Azure DevOps (三) 实现和Jenkins的联动

    上一篇文章中,我们通过azure 的webhook实现了和钉钉机器人的联动,实现了通过钉钉机器人告知大家刚才谁动了仓库. 在文章开篇的时候我们举例说了jenkins也可以实现和azure联动,今天我们 ...

  3. 使用 Xshell 连接矩池云 GPU服务器

    下单租用 租用成功 打开软件 完成 错误用法不能这样使用

  4. 矩池云 | 新冠肺炎防控:肺炎CT检测

    连日来,新型冠状病毒感染的肺炎疫情,牵动的不仅仅是全武汉.全湖北,更是全国人民的心,大家纷纷以自己独特的方式为武汉加油!我们相信坚持下去,终会春暖花开. 今天让我们以简单实用的神经网络模型,来检测肺炎 ...

  5. pthon语法

    1.条件语句 #找到a.b.c中最大的数,其中and是逻辑运算符"且"的意思 if a>b and a>c: print(a) elif b>a and b> ...

  6. python链接mqtt订阅与发布

    什么是mqtt: MQTT 全称为 Message Queuing Telemetry Transport(消息队列遥测传输)是一种基于发布/订阅范式的"轻量级"消息协议.该协议构 ...

  7. GitLab 常用命令

    1. 进入本地仓库访问位置之后执行命令 1) 远程仓库相关命令检出仓库:$ git clone git://github.com/jquery/jquery.git查看远程仓库:$ git remot ...

  8. docker 部署mysql tomcat时 在root@localhost~下——-——docker exec -it 容器名 /bin/bash 报错

    在docker部署mysql时 报错 找不到 容器不自动启动  , docker start 容器名  也没有效果 多次尝试发现 原因是创建容器时在 下面创建的 更改为下创建 问题解决

  9. python3生成一个含有20个随机数的列表,要求所有元素不相同,并且每个元素的值介于1到100之间

    import random alist = random.sample(range(1,101),20) #random.sample()生成不相同的随机数 print(alist)

  10. winform 代码生成textbox ,checkbox

    参考地址:https://jingyan.baidu.com/article/380abd0a6b80701d90192cde.html 首先搭建好Winform项目框架后,创建窗体页面后自行布局 这 ...