------- android培训、java培训、期待与您交流! ----------
IO流时一个很重要的部分,它可以对文件,图片等做处理,可以复制,移动文件,可以通过键盘输入,再把数据存储到文档当中,总之用处很大。
先说说一些知识点。
InputStream:是表示字节输入流的所有类的超类。
FileInputStream:从文件系统中的某个文件中获得输入字节。FileInputStream 用于读取诸如图像数据之类的原始字节流。但是如果需要炒作文档一类的数据时,使用 FileReader,但是FileReader不能使用在图片和音频等上面,因为在操作过程中会发生数据变化,导致最后文档不可用。
FileInputStream:包含其他一些输入流,它将这些流用作其基本数据源,它可以直接传输数据或提供一些额外的功能。
BufferedInputStream:该类实现缓冲的输入流,这个是一个缓冲器。
OutputStream:此抽象类是表示输出字节流的所有类的超类。
FileOutputStream:文件输出流是用于将数据写入 File 或 FileDescriptor 的输出流。
字节流复制文件演示例程:
importjava.io.*; //导入包 publicclass CopyMovieTest { publicstatic void main(String[] args) throws IOException //如果不做处理则抛出异常 { copyDemo(); } privatestatic void copyDemo() throws IOException {//如果不做处理则抛出异常 BufferedInputStreamin = new BufferedInputStream(new FileInputStream("F:\\Test1.java"));//源 BufferedOutputStreamout = new BufferedOutputStream(new FileOutputStream("D:\\Test1.java"));//目的 byte[]buf = new byte[1024];//定义缓冲区的大小 int len = 0; while((len = in.read(buf)) !=-1){ out.write(buf,0,len);//写数据 out.flush();//刷新 } in.close();//关流 out.close(); }
-------------------------------------------------
转换流:
InputStreamReader:字节流转成字符流的桥梁。(可以通过指定的编码表将字节数据解码成对应字符)
OutputStreamWriter:字符流转成字节流的桥梁。(可以通过指定的编码表将字符编码成对应的字节数据并写入目的中)
转换流特有功能:转换流可以将字节转成字符,原因在于,将获取到的字节通过查编码表获取到指定对应字符。
转换流练习:
1、使用转换流来完成键盘录入的数据打印在控制台上:
import java.io.*; public class Demo002 { public static void main(String[] args) throws IOException { BufferedReader fr = new BufferedReader(new InputStreamReader(System.in));//确定输入为键盘输入 BufferedWriter fw = new BufferedWriter(new OutputStreamWriter(System.out));//输出在控制台 String line = null; while((line = fr.readLine()) !=null) { if("over".equals(line))//当键盘输入OVER则结束 break; fw.write(line.toUpperCase()); fw.newLine(); fw.flush(); } fw.close();//关流,一定要养成好习惯做完操作后关流 fr.close(); } }
2、将键盘录入的数据写到一个文件中。
import java.io.*; public class KeyReadDemo { public static void main(String[] args) throws IOException { demo(); } public static void demo() throws IOException { BufferedReader fr = new BufferedReader(new InputStreamReader(System.in));//源,键盘输入 BufferedWriter fw = new BufferedWriter(new FileWriter("f:\\keydemo.txt"));//目的,f:\\keydemo.txt文件 String line = null; while((line = fr.readLine()) != null) { String str = line; if("over".equals(str))//还是OVER结束 break; fw.write(line); fw.newLine();//这个必须要换行,否则出来的东西没法看 fw.flush();//记得及时刷新 } fr.close(); fw.close(); } }
假如想要把一个文件打印在控制台上,只需要把源指向文件,目的指向控制台即可。流的操作有一些规律可循。在写代码之前需要先弄清楚以下几个问题。
1.明确源和目的:
2.明确数据是否是纯文本数据。
3.明确具体的设备。
4.是否需要其他额外功能:
根据这4个问题来确定该用什么流来操作。
相关推荐
传智播客黑马程序员javaIO流重点总结(必读).doc
Java-IO流高级-例题 & 例题源码 & PPT教学文档(黑马程序员详细版)。
含面向对象,异常处理和常用类,线程技术,集合框架,IO操作,网络编程,文件操作,反射机制,
黑马程序员_毕向东_Java基础视频教程第18天-14-IO流(拷贝文本文件图例).zip
行时所需要的基本条件和许多 Java 基础类,例如,IO 类、GUI 控件类、网络类等。JRE 是提供给 普通用户使用的,如果你只想运行别人开发好的 Java 程序,那么,你的计算机上必须且只需安装 JRE。 JDK(Java ...
黑马程序员_毕向东_Java基础视频教程第18天-09-IO流(文件的续写)
单片机课程设计——IO口基本输出(仿真代码).zip
这是根据黑马程序员中关于Vue11天课程中,跟着视频编写的代码,一行行跟着写出来的,连备注基本也是和视频一样,用的是vscode开发工具,上传的资料已经把node_modules删除了,进入目录后,用cnpm i重新安装一下就...
设备管理——IO设备(ppt80).pptx
java基础——IO流及File-RandomAccessFile对象.docx
黑马程序员_毕向东_Java基础视频教程第18天-12-IO流(文本文件读取练习).zip
蓝桥杯之单片机学习(十三)——IO扩展技术与存储器映射扩展的代码文件
IO—黑马程序员Java学习笔记.rar
javaIO流
Java-IO流基础例题 & 例题源码 & PPT教学文档(黑马程序员详细版)。
黑马程序员_毕向东_Java基础视频教程第18天-13-IO流(拷贝文本文件).zip
获取元数据的介绍,从类名获取、从实例中获取,从类的镜像文件中获取,序列化与反序列化 数据模型
Proteus 单片机仿真 AT89系列
黑马程序员_毕向东_Java基础视频教程第18天-11-IO流(文本文件读取方式二).zip