package io.hh;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.OutputStream;
import java.io.OutputStreamWriter;
/*
IO解决问题: 解决设备与设备之间 的数据传输问题。 比如: 硬盘--->内存 内存----->硬盘
字节流:
输入字节流:read
---------| InputStream 所有输入字节流的基类。 抽象类。
------------| FileInputStream 读取文件的输入字节流。
------------| BufferedInputStream 缓冲输入字节流。 该类内部其实就是维护了一个8kb字节数组而已。 该类出现的目的是为了提高读取文件数据的效率。
输出字节流: write
---------| OutputStream 所有输出字节流的基类。 抽象类。
------------| FileOutputStream 向文件输出数据 的输出字节流。
------------| BufferedOutputStream 缓冲输出字节流。 该类出现的目的是为了提高向文件写数据的效率。 该类内部其实也是维护了一个8kb的字节数组而已。
什么情况使用字节流: 读取到数据不需要经过编码或者解码的情况情况下这时候使用字节流。比如:图片数据
字符流 = 字节流 + 编码(解码)
字符流:
输入字符流
--------| Reader 所有输入字符流的基类。 抽象类。
-----------| FileReader 读取文件字符的输入字符流。
-----------| BufferedReader 缓冲输入字符流。 该类出现的目的是为了提高读取文件字符的效率并且拓展了功能(readLine()),它内部 其实就是维护了一个8192个长度的字符数组。
输出字符流
-------| Writer 所有输出字符流的基类。 抽象类。
------------| FileWriter 向文件输出字符数据的输出字符流。
---------------| BufferedWriter 缓冲输出字符流。该类出现的目的是为了提高写文件字符的效率并且拓展了功能(newLine())。
什么情况下使用字符流:如果读写的都是字符数据,这时候我们就使用字符流。
转换流:
输入字节流的转换流 输入字节流---------输入字符流
InputSrteamReader
输出字节流的转换流
OutputStreamWriter
转换流的作用:
1. 可以把对应的字节流转换成字符流使用。
2. 可以指定码表进行读写文件的数据。
FileReader, FileWriter这两个类默认是使用的是gbk编码 表。不能由你来指定码表读写文件数据。
*/
// InputStream
public class IoExer {
public static void main(String args[])throws Exception{
//testInputStream();
//testOutPutStream();
testInputStreamRead();
//testOutputStreamWriter();
}
// 用于接收然后输出
public static void testInputStream() throws Exception{
InputStream in = System.in;
int content = in.read();
System.out.println(content);
}
// 用于打开并写入文件
public static void testOutPutStream() throws Exception{
OutputStream out=new FileOutputStream("d:\\1.txt");
out.write(1);
}
// InputStreamReader将InputStream字节流变为Reader字符流
public static void testInputStreamRead() throws Exception{
FileInputStream fileInputStream = new FileInputStream("d:\\1.txt");
InputStreamReader inputStreamReader=new InputStreamReader(fileInputStream,"utf-8");
int content = 0;
while((content=inputStreamReader.read())!=-1){
System.out.print((char)content);
}
inputStreamReader.close();
}
//
public static void testOutputStreamWriter() throws IOException{
FileOutputStream fileOutputStream=new FileOutputStream("d:\\1.txt");
OutputStreamWriter outputStreamWriter=new OutputStreamWriter(fileOutputStream,"utf-8");
outputStreamWriter.write("大家好");
outputStreamWriter.close();
}
}
java2015视频day1 IO
最新推荐文章于 2022-04-12 10:11:34 发布