黑马程序员——Java基础中的输入输出流(I/O)
来源:互联网 发布:uniprot数据库教程 编辑:程序博客网 时间:2024/04/28 18:10
IO的简单介绍:
IO概述
IO流用来处理设备之间的数据传输。
Java对数据的操作是通过流的方式。
Java用于操作流的对象都在IO包中。
IO分类:
流按操作数据分为两种:
字节流与字符流。
注意:其实计算机里的所有数据都是以字节的形式体现的,计算机可以直接识别字节。但是作为人类的程序员更擅长操作字符,所以后期产生了字符流 。
流按流向分为:
输入流(input),输出流(output)。
IO中常见的核心的类及其方法的介绍:
字节流:
输入流:
InputStream
FileInputStream
read(int byte)
resd(byte[] arr)
BufferedInputStream
read(int byte)
resd(byte[] arr)
输出流:
OutputStream
FileOutputStream
write(int byte)
write(byte[] arr)
BufferedOutputStream
write(int byte)
write(byte[] arr)
字符流:
输入流:
Reader
FileWriter
read(char char)
read(char[] chars)
BufferedFileWriter
read(char char)
read(char[] chars)
readLine()
InputStreamWriter(转换流)
read(int byte)
resd(byte[] arr)
输出流:
Writer
FileReader
write(char char)
write(char[] chars)
BufferedFileReader
write(char char)
write(char[] chars)
newline()
OutputStreaReader(转换流)
write(int byte)
write(byte[] arr)
IO中常见的核心的类简单图解:
IO中常用的代码实现:
1:字节流的:
package cn.itcast3;
import java.io.BufferedInputStream;
import java.io.BufferedOutputStream;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
/*
*使用高效字节流复制文件:
*/
public class Demo4 {
public static void main(String[] args) throws IOException {
long currentTimeMillis = System.currentTimeMillis();
//创建输入流对象
FileInputStream fis = new FileInputStream("b.txt");
BufferedInputStream bis = new BufferedInputStream(fis);
//创建输出流对象
FileOutputStream fos = new FileOutputStream("b2.txt");
BufferedOutputStream bos = new BufferedOutputStream(fos);
//读入
byte[] bytes = new byte[1024];
int len;
while((len=bis.read(bytes))!=-1) {
//写出
bos.write(bytes, 0, len);
bos.flush();
}
//关闭流
bos.close();
bis.close();
long currentTimeMillis2 = System.currentTimeMillis();
System.out.println(currentTimeMillis2-currentTimeMillis);
}
}
2:字符流的:
package cn.itcast;
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
/*
* 高效字符流完成文件复制
*/
public class Demo6 {
public static void main(String[] args) throws IOException {
//创建流对象
BufferedReader br = new BufferedReader(new FileReader("src/cn/itcast/Demo.java"));
BufferedWriter bw = new BufferedWriter(new FileWriter("d.txt"));
//读写
String line;
while((line = br.readLine())!=null) {
bw.write(line);
bw.newLine();
}
//关闭流
bw.close();
br.close();
}
}
3:转换流的:
package cn.itcast;
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
/*
* 转换流:
* OutputStreamWriter:
* 使用时:将字节流转换成字符流
* 概念上:字符流通向字节流的桥梁
*
* InputStreamReader:
* 使用时:将字节流转换成字符流
* 概念上:字节流通向字符流的桥梁
*/
public class Demo7 {
public static void main(String[] args) throws IOException {
//创建流对象
//由字节流创建一个字符流
InputStreamReader isr = new InputStreamReader(new FileInputStream("a.txt"));
//由字符流创建高效字符流
BufferedReader br = new BufferedReader(isr);
//由字节流创建一个字符流
OutputStreamWriter osw = new OutputStreamWriter(new FileOutputStream("e.txt"));
//由字符流创建高效字符流
BufferedWriter bw = new BufferedWriter(osw);
//读写
String line;
while((line=br.readLine())!=null) {
bw.write(line);
bw.newLine();
}
//关闭流
bw.close();
br.close();
}
}
- 黑马程序员——Java基础中的输入输出流(I/O)
- 黑马程序员——Java基础--- I/O输入输出流
- 黑马程序员—java基础复习—I/O流
- 黑马程序员——java中的I/O流
- 黑马程序员_输入输出流(I/O)
- 黑马程序员-java基础——I/O
- 黑马程序员------java基础----I/O流(一)
- 黑马程序员----java基础----I/O流(二)
- 黑马程序员—JAVA基础之I/O
- 黑马程序员——浅谈java中的I/O流操作(一)
- 黑马程序员——浅谈java中的I/O流操作(二)
- 黑马程序员——Java基础---I/O流(中[字节流])
- 黑马程序员——Java基础---I/O流(下[字符流])
- 黑马程序员——Java基础---I/O流(上[异常])
- 黑马程序员 Java基础 I/O技术
- 黑马程序员-----Java基础-----I/O流操作
- 黑马程序员——Java I/O与流
- Java中的输入输出(I/O)总结
- reverse interger --- leetcode
- POJ 3320
- 查看oracle当前session
- QTCreator添加链接库
- java tcp 传送任意文件
- 黑马程序员——Java基础中的输入输出流(I/O)
- Java设计模式之状态模式
- Linux中profile、bashrc、~/.bash_profile、~/.bashrc、~/.bash_profile之间的区别和联系以及执行顺序
- Android学习笔记之适配器
- 计算几何小结
- 2015年实习心情周记III
- properties
- 【软件打包】Advanced Installer -- Windows的安装包制作工具【1】
- jqgrid编辑