IO流的简单实现
学习目标:
熟练掌握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流的简单实现的更多相关文章
- Java开发笔记(九十一)IO流处理简单的数据压缩
前面介绍的文件I/O,不管是写入文本还是写入对象,文件中的数据基本是原来的模样,用记事本之类的文本编辑软件都能浏览个大概.这么存储数据,要说方便确实方便,只是不够经济划算,原因有二:其一,写入的数据可 ...
- AJPFX关于IO流的简单总结
IO流的分类:1.根据流的数据对象来分:高端流:所有的内存中的流都是高端流,比如:InputStreamReader 低端流:所有的外界设备中的流都是低端流,比如InputStream,Output ...
- JAVA IO流的简单总结+收集日志异常信息
1.字节流: IuputStream 所有字节输出流的超类 . 抽象类 ---- FileInputStream ---- BufferedInputStream:提供数据的读取效率,拓展方法(内部维 ...
- IO流实现简单的文件的剪切
思路: 判断 即将 复制的文件是文件夹还是文件 遍历需要复制的源文件夹 如果是文件夹,就通过流创建一个同样的子文件夹 如果是文件,就复制过去 接下来上代码 public class Demo1 { p ...
- IO流2
一.IO流简介及分类 1.IO流简介 IO流: 简单理解数据从一个地方流向另外一个地方 2.IO流分类 按照数据流动的方向 分为 输入流和输出流 按照数据流动的单位分为 字节流和字符流 二.四大 ...
- java基础之IO流及递归理解
一.IO流(简单理解是input/output流,数据流内存到磁盘或者从磁盘到内存等) 二.File类(就是操作文件和文件夹的) 1.FIleFile类构造方法 注意:通过构造方法创建的file对象是 ...
- java的IO流初探
DEMO代码: /* * 文件IO流的简单演示 */ package com.IO; import java.io.*; public class Demo_IO_1 { /** * @param a ...
- 什么是IO流
先看一段百度上的解释: 当然:如果你看不懂,那么你只需要记住下面3句话. 1. (1).我们知道,每个人家里喝的水都是从自来水厂来的,自来水厂的水又是从水源地来的, (2).水是通过水管来的. (3) ...
- java 20 - 4 IO流概述和一个简单例子解析
IO流的分类: 流向: 输入流 读取数据 输出流 写出数据 数据类型: 字节流 字节输入流 读取数据 InputStream 字节输出流 写出数据 OutputStream 字符流 字符 ...
随机推荐
- Dubbo服务框架和spring-cloud架构的优缺点
Dubbo一.dubbo简介 Dubbo是阿里巴巴公司开源的一个高性能优秀的服务框架,使得应用可通过高性能的RPC实现服务的输出和输入功能,可以和Spring框架无缝集成. Dubbo是一款高性能.轻 ...
- Sqlserver 2008 导出数据库
sqlserver2008中导出数据库: ①当数据库中的数据量比较大时,可使用备份的方法. 路径可以默认,想自定义就点击[添加],最后[确定]即可. ②当数据量不是很大时,可以采用导出SQL执行语句的 ...
- aria2 源码解析专题—— (一)基础架构
此文章是这个专题的开篇,由于初入 C++ 的大门,所以想着拿个项目来看看,凑巧有点基础,又想学习一下在unix上的编程,所以就找了 aria2 这个库来看看源码,希望能学到一些东西. 言归正传,今天把 ...
- LGP3092题解
看 DP 的时候翻到的题,发现这题的坑鸽子了一年半 这个状态感觉比较厉害,还是来记录一下吧. 首先硬币数量很少让我们想到状压,可以想出来一个十分 navie 的状态:\(dp[S][n]\) 表示用过 ...
- Qt记事本,美化版
主体代码实现 #include "mainwindow.h" #include "ui_mainwindow.h" #include<QMenu> ...
- 《前端运维》一、Linux基础--07Shell函数
linux shell 可以用户定义函数,然后在shell脚本中可以随便调用.shell中函数的定义格式如下: [ function ] funname [()] { action; [return ...
- 详解 Java 内部类
内部类在 Java 里面算是非常常见的一个功能了,在日常开发中我们肯定多多少少都用过,这里总结一下关于 Java 中内部类的相关知识点和一些使用内部类时需要注意的点. 从种类上说,内部类可以分为四类: ...
- Redis运维实战之集群中的脑裂
1.对于分布式Redis主从集群来说,什么是脑裂? 所谓的脑裂,就是指在主从集群中,同时有两个主节点,它们都能接收写请求.而脑裂最直接的影响,就是客户端不知道应该往哪个主节点写入数据,结果就是不同的客 ...
- GeneralUpdate20220323里程碑版本发布
大家好我是juster,GeneralUpdate的开源项目作者.这次将发布GeneralUpdate里程碑版本,该版本发生了巨大改变历时4个月的时间终于要和大家见面了.开源不易希望大家能多多支持.可 ...
- 无传感FOC控制中的转子位置和速度确定方法一
使用PLL估算器在无感的情况下,估计转子的角度和角速度 PLL估算器的工作原理基于反电动势的d分量在稳态下等于零,其框图如下: ΚΦ 表示电压常量,下面给出了电气转速计算中使用的归 一化 ΚΦ : ...