IO流总结
说白了,IO流就是对数据存储和取出做操作
什么是IO
I:inpput,就是输入流
O:output,就是输出流
分类
输入流
字节输入流
字节输入流:InputStream—>FileInputStream
FileInputStream fis = new FileInputStream("a.txt");
字节输入流获取数据的俩种方式
1、一次读取一个字节
int b = 0;
while((b=fis.read())!=-1){
System.out.println((char)b);
}
代码实现
import java.io.FileInputStream;
import java.io.IOException;
public class Demo {
public static void main(String[] args) throws IOException {
FileInputStream fis = new FileInputStream("F:\\Lsf\\src\\com\\work\\heima\\a.txt");
int b = 0;
while ((b=fis.read())!=-1){
System.out.println(((char) b));
}
fis.close();
}
}
运行效果:
2、一次读取一个字节数组
byte[] bytes = new byte[1024];
int length = 0;
while((length=fis.read(bytes))!=-1){
System.out.println(new String(bytes,0,length));
}
代码实现:
import java.io.FileInputStream;
import java.io.IOException;
public class Demo {
public static void main(String[] args) throws IOException {
FileInputStream fis = new FileInputStream("F:\\Lsf\\src\\com\\work\\heima\\a.txt");
byte[] bytes = new byte[1024];
int length = 0;
while ((length = fis.read(bytes))!=-1){
System.out.println(new String(bytes,0,length));
}
fis.close();
}
}
运行效果截图
字节缓冲输入流
字节缓冲输入流:BufferedInputStream
BufferedInputStream bis = new BufferedInputStream(new FileInputStream("a.txt"));
字节缓冲输入流获取数据的俩种方式
1、一次读取一个字节
int b = 0;
while ((b=bis.read())!=-1){
System.out.println((char)b);
}
bis.close();
代码实现:
import java.io.BufferedInputStream;
import java.io.FileInputStream;
import java.io.IOException;
public class Demo {
public static void main(String[] args) throws IOException {
BufferedInputStream bis = new BufferedInputStream(new FileInputStream("F:\\Lsf\\src\\com\\work\\heima\\a.txt"));
int b = 0;
while ((b=bis.read())!=-1){
System.out.println((char)b);
}
bis.close();
}
}
程序运行结果:
2、一次获取一个字节数组
byte[] bytes = new byte[1024];
int length = 0;
while ((length=bis.read(bytes))!=-1){
System.out.println(new String(bytes,0,length));
}
代码实现
import java.io.BufferedInputStream;
import java.io.FileInputStream;
import java.io.IOException;
public class Demo {
public static void main(String[] args) throws IOException {
BufferedInputStream bis = new BufferedInputStream(new FileInputStream("F:\\Lsf\\src\\com\\work\\heima\\a.txt"));
byte[] bytes = new byte[1024];
int length = 0;
while ((length=bis.read(bytes))!=-1){
System.out.println(new String(bytes,0,length));
}
bis.close();
}
}
运行效果截图:
字符输入流
说字符输入流之前先说一下什么是字符流:字符流就是字节流+编码表
字符输入流:Reader – InputStreamReader
InputStreamReader isr = new InputStreamReader(new FileInputStream("a.txt"));
简化格式:FileReader
FileReader fr = new FileReader("a.txt");
字符输入流获取数据的两种方式
1、一次读取一个字符
int c = 0;
while ((c=fr.read())!=-1){
System.out.println((char)c);
}
fr.close();
代码实现:
import java.io.*;
public class Demo {
public static void main(String[] args) throws IOException {
// InputStreamReader isr = new InputStreamReader(new FileInputStream("F:\\Lsf\\src\\com\\work\\heima\\a.txt"));
FileReader fr = new FileReader("F:\\Lsf\\src\\com\\work\\heima\\a.txt");
int c = 0;
while ((c=fr.read())!=-1){
System.out.println((char)c);
}
fr.close();
}
}
运行效果截图:
2、一次读取一个字符数组
char[] chars = new char[1024];
int length=0;
while ((length=fr.read(chars))!=-1){
System.out.println(new String(chars,0,length));
}
fr.close();
具体代码实现:
import java.io.*;
public class Demo {
public static void main(String[] args) throws IOException {
// InputStreamReader isr = new InputStreamReader(new FileInputStream("F:\\Lsf\\src\\com\\work\\heima\\a.txt"));
FileReader fr = new FileReader("F:\\Lsf\\src\\com\\work\\heima\\a.txt");
char[] chars = new char[1024];
int length=0;
while ((length=fr.read(chars))!=-1){
System.out.println(new String(chars,0,length));
}
fr.close();
}
}
运行效果截图:
字符缓冲输入流
字符缓冲输入流:BufferedReader
BufferedReader br = new BufferedReader(new InputStreamReader(new FileInputStream("a.txt")));
简化写法:
BufferedReader br = new BufferedReader(new FileReader("a.txt"));
字符缓冲数据流获取数据的俩种方式
1、一次读取一个数据
int c = 0;
while ((c=br.read())!=-1){
System.out.println((char)c);
}
br.close();
代码实现
import java.io.*;
public class Demo {
public static void main(String[] args) throws IOException {
// BufferedReader br = new BufferedReader(new InputStreamReader(new FileInputStream("F:\\Lsf\\src\\com\\work\\heima\\a.txt")));
BufferedReader br = new BufferedReader(new FileReader("F:\\Lsf\\src\\com\\work\\heima\\a.txt"));
int c = 0;
while ((c=br.read())!=-1){
System.out.println((char)c);
}
br.close();
}
}
输出结果
一次读取一个字符数组
char[] chars = new char[1024];
int length = 0;
while ((length=br.read(chars))!=-1){
System.out.println(new String(chars,0,length));
}
br.close();
具体代码实现:
import java.io.*;
public class Demo {
public static void main(String[] args) throws IOException {
// BufferedReader br = new BufferedReader(new InputStreamReader(new FileInputStream("F:\\Lsf\\src\\com\\work\\heima\\a.txt")));
BufferedReader br = new BufferedReader(new FileReader("F:\\Lsf\\src\\com\\work\\heima\\a.txt"));
char[] chars = new char[1024];
int length = 0;
while ((length=br.read(chars))!=-1){
System.out.println(new String(chars,0,length));
}
br.close();
}
}
运行效果截图:
输出流
字节输出流
字节输出流:OutputStream–FileOutputStream
FileOutputStream fos = new FileOutputStream("F:\\Lsf\\src\\com\\work\\heima\\a.txt");
字节输出流写入数据的俩种方式:
1、一次写入一个字节
fos.write(95);
具体代码实现:
import java.io.*;
public class Demo {
public static void main(String[] args) throws IOException {
FileOutputStream fos = new FileOutputStream("F:\\Lsf\\src\\com\\work\\heima\\a.txt");
fos.write(95);
fos.close();
}
}
运行效果截图:
一次写入一个字节数组
fos.write("我一定好好学习".getBytes());
具体代码实现
import java.io.*;
public class Demo {
public static void main(String[] args) throws IOException {
FileOutputStream fos = new FileOutputStream("F:\\Lsf\\src\\com\\work\\heima\\a.txt");
fos.write("我一定好好学习".getBytes());
fos.close();
}
}
运行效果截图
字节缓冲输出流
字节缓冲输出流:BufferedOutPutStream
BufferedOutputStream bos = new BufferedOutputStream(new FileOutputStream("F:\\Lsf\\src\\com\\work\\heima\\a.txt"));
字节缓冲输出写入数据的俩种方式
1、一次写入一个字节
bos.write(97);
具体代码:
import java.io.*;
public class Demo {
public static void main(String[] args) throws IOException {
BufferedOutputStream bos = new BufferedOutputStream(new FileOutputStream("F:\\Lsf\\src\\com\\work\\heima\\a.txt"));
bos.write(97);
bos.close();
}
}
运行效果截图
2、一次写入一个字节数组
bos.write("好好学习,天天向上".getBytes());
具体代码实现:
import java.io.*;
public class Demo {
public static void main(String[] args) throws IOException {
BufferedOutputStream bos = new BufferedOutputStream(new FileOutputStream("F:\\Lsf\\src\\com\\work\\heima\\a.txt"));
bos.write("好好学习,天天向上".getBytes());
bos.close();
}
}
运行效果截图:
字符输出流
字符输出流:Writer–OutputStreamWriter
OutputStreamWriter osw = new OutputStreamWriter(new FileOutputStream("F:\\Lsf\\src\\com\\work\\heima\\a.txt"));
简化写法:
FileWriter fileWriter = new FileWriter("F:\\Lsf\\src\\com\\work\\heima\\a.txt");
字符输出流写入数据的俩种方式
1、一次写一个字符
fw.write(98);
具体代码:
import java.io.*;
public class Demo {
public static void main(String[] args) throws IOException {
// OutputStreamWriter osw = new OutputStreamWriter(new FileOutputStream("F:\\Lsf\\src\\com\\work\\heima\\a.txt"));
FileWriter fw = new FileWriter("F:\\Lsf\\src\\com\\work\\heima\\a.txt");
fw.write(98);
fw.close();
}
}
运行效果
2、一次写入一个字符数组
fw.write("再给我一次机会我会说出我爱你");
具体代码实现:
import java.io.*;
public class Demo {
public static void main(String[] args) throws IOException {
// OutputStreamWriter osw = new OutputStreamWriter(new FileOutputStream("F:\\Lsf\\src\\com\\work\\heima\\a.txt"));
FileWriter fw = new FileWriter("F:\\Lsf\\src\\com\\work\\heima\\a.txt");
fw.write("再给我一次机会我会说出我爱你");
fw.close();
}
}
运行效果截图
字符缓冲输出流
字符缓冲输出流:BufferedWriter
BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(new FileOutputStream("F:\\Lsf\\src\\com\\work\\heima\\a.txt")));
简化写法:
BufferedWriter bw = new BufferedWriter(new FileWriter("F:\\Lsf\\src\\com\\work\\heima\\a.txt"));
字符缓冲输出流写入数据的俩种方式
1、一次写入一个字符
bw.write(98);
2、一次写入一个字符数组
bw.write("有人阿谀奉承,有人早已麻木".toCharArray());
3、使用字符缓冲输出流对象的特殊方式实现换行
bw.write("有人阿谀奉承,有人早已麻木");
bw.newLine();
具体代码实现:
import java.io.*;
public class Demo {
public static void main(String[] args) throws IOException {
// BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(new FileOutputStream("F:\\Lsf\\src\\com\\work\\heima\\a.txt")));
BufferedWriter bw = new BufferedWriter(new FileWriter("F:\\Lsf\\src\\com\\work\\heima\\a.txt"));
bw.write("有人阿谀奉承,有人早已麻木");
bw.newLine();
bw.write("有人换了张脸企图脱颖而出");
bw.close();
}
}
运行效果截图