IO流的基础
来源:互联网 发布:交大 汉芯 知乎 编辑:程序博客网 时间:2024/06/05 08:12
IO流呢,与其他语言相比,Java的IO功能显得复杂。在其他语言中,许多IO功能(比如读取文件),是被封装好的,可以用一两行程序实现。在Java中,程序员往往需要多个层次的装饰(decoration),才能实现文件读取。
相对的复杂性带来的好处是IO的灵活性。在Java中,程序员可以控制IO的整个流程,从而设计出最好的IO方式.
IO流:用在设备和设备之间的数据传输
IO流分为: 1)按流的方向分类 2)按数据类型分类
1) 输入流:用来读取数据的
字节输入流
字节输出流
输出流:用来写出数据的
字节输出流
字符输出流
2) 字节流:
字节输入流(读数据) :InputStream
字节输出流(写数据) :OutputStream
字符流:
字符输入流:Reader
字符输出流:Writer
输出流:OutputStream
输出流的开发步骤:
1)创建文件输出流对象
2)写数据
3)释放资源------>也就是关闭流,为什么关闭流?---->是为了让当前的流对象变成垃圾,能及时的被垃圾回收期回收掉 -------->如果已经关闭了,不能再写数据了,否则异常
写数据:应用OutputStream,OutputStream能实例化吗?
由于该类是抽象类,所以不能实例化
抽象类 具体类
InputStream XXXInputStream
OutputStream XXXOutputStream
Reader XXXReader
Writer XXXWriter
输出流写数据的方法:
public void write(int b) ---->将指定的字节写入到输出流对象中
public void write(byte[ ] b) ---->写入字节数组
public void write(byte[ ] b,int off,int len) --->写入字节数组的一部分
public class FileOutputStreamDemo{
public Static void main(String [ ] args) throws IOException {
//创建文件输出流对象
FileOutputStream fos =new FileOutputStream("fos.txt");
//写数据
//将制定的字节写入到输出流对象中
fos.write(97);
fos.write(55);
fos.write(53);
//写入字节数组
//定义一个字节数组
byte [ ] bys ={97,98,99,100,101};
fos.write(bys);
// 写入字节数组的一部分
fos.write(bys,1,3);
//释放资源
fos.close();
}
}
其他的构造方法:
public FileOutputStream(File file,boolean append) --->追加写入:append指定为true,则表示将字节写入到文件的末尾
问题:为什么写入数据没有换行呢?
现在只是写入数据,并没有个当前文本文件写入换行符号,而且换行符号针对不同的系统操作
Windows : \r\n
Linux: \n
mac: \r
目前Windows的操作系统,IO流要换行--->必须写入换行符号 newLine();
递归
public void show(int n){
if(n< 0){
System.exit(0);
}
System.out.println(n);
show(--n);
}
递归条件:
1)必须有一个递归的方法存在
3)必须有某一种规律
总结
- IO流的基础
- IO流的基础2
- Android基础-java的IO流
- java基础之IO流的应用
- IO流的基础操作FileReader
- IO流的基础操作FileWriter
- IO流基础使用的集合
- java基础--IO字符流的读写
- java基础篇IO流的规律
- java基础io流的分类
- java基础io流的基本应用
- IO流操作的基础编程知识
- 【java基础】IO流的操作分析
- IO基础之缓冲流的详解
- IO的基础概念
- JAVA 基础IO流
- java基础:IO流
- Java基础-->IO流
- 微服务:史上最简单的 SpringCloud 教程 | 终章
- BTree和B+Tree详解
- ubuntu安装QT5
- 正则表达式工具RegexBuddy使用教程
- 临时笔记:豪大推荐的Vue 学习路径(二)
- IO流的基础
- Spring框架第二天(IOC和AOP)
- 对持久层sql语句的高复用性的一点小领悟
- Socket通讯
- 运算符的优先级原则
- 第二届全国智能制造(中国制造2025) 创新创业大赛华东赛区在苏州启动
- SpringMVC随笔——认识ModelAndView
- 深度学习入门级别资料
- 搭建SpringMVC4.3.2+MyBatis3.4.1框架