声明:本篇博客仅记录各种流的代码,以防止忘记。
字节流
视频、图片、音频、doc等用记事本打开为乱码的基本都是字节流文件;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
public class Test {
public static void main(String[] args) {
FileInputStream fileInputStream = null;
FileOutputStream fileOutputStream = null;
try {
fileInputStream = new FileInputStream("D:\\黄龄 - 等待.mp3");
fileOutputStream = new FileOutputStream("D:\\3.mp3");
byte [] car = new byte[1024];
int length = 0;
while((length=fileInputStream.read(car))!=-1) {
fileOutputStream.write(car,0,length);
}
fileOutputStream.flush();
} catch (Exception e) {
e.printStackTrace();
}finally {
if(fileInputStream!=null) {
try {
fileInputStream.close();
} catch (IOException e) {
e.printStackTrace();
}
}
if(fileOutputStream!=null) {
try {
fileOutputStream.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
}
字符流
用记事本打开不会乱码的;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
public class Test {
public static void main(String[] args) {
FileReader fileReader = null;
FileWriter fileWriter = null;
try {
fileReader = new FileReader("D:\\1.txt");
fileWriter = new FileWriter("D:\\2.txt");
char[] car = new char[1024];
int length = 0;
while((length=fileReader.read(car))!=-1) {
fileWriter.write(car,0,length);
}
fileWriter.flush();
} catch (Exception e) {
e.printStackTrace();
}finally {
if(fileReader!=null) {
try {
fileReader.close();
} catch (IOException e) {
e.printStackTrace();
}
}
if(fileWriter!=null) {
try {
fileWriter.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
}
缓冲流
数据在复制过程中将数据放到缓冲区上以方便读取;
字节缓冲流
import java.io.BufferedInputStream;
import java.io.BufferedOutputStream;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
public class Test {
public static void main(String[] args) {
BufferedInputStream bufferedInputStream = null;
BufferedOutputStream bufferedOutputStream = null;
try {
bufferedInputStream = new BufferedInputStream(new FileInputStream("D:\\黄龄 - 等待.mp3"));
bufferedOutputStream = new BufferedOutputStream(new FileOutputStream("D:\\3.mp3"));
byte [] car = new byte[1024];
int length = 0;
while((length=bufferedInputStream.read(car))!=-1) {
bufferedOutputStream.write(car,0,length);
}
bufferedOutputStream.flush();
} catch (Exception e) {
e.printStackTrace();
}finally {
if(bufferedInputStream!=null) {
try {
bufferedInputStream.close();
} catch (IOException e) {
e.printStackTrace();
}
}
if(bufferedOutputStream!=null) {
try {
bufferedOutputStream.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
}
字符缓冲流
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
public class Test {
public static void main(String[] args) {
BufferedReader bufferedReader = null;
BufferedWriter bufferedWriter = null;
try {
bufferedReader = new BufferedReader(new FileReader("D:\\1.txt"));
bufferedWriter = new BufferedWriter(new FileWriter("D:\\3.txt"));
char [] car = new char[1024];
int length = 0;
while((length=bufferedReader.read(car))!=-1) {
bufferedWriter.write(car,0,length);
}
bufferedWriter.flush();
} catch (Exception e) {
e.printStackTrace();
}finally {
if(bufferedReader!=null) {
try {
bufferedReader.close();
} catch (IOException e) {
e.printStackTrace();
}
}
if(bufferedWriter!=null) {
try {
bufferedWriter.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
}
转换流
因为操作字符文件时有可能因为编码不一致造成乱码,字节流向字符流的转换;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
public class Test {
public static void main(String[] args) {
InputStreamReader inputStreamReader = null;
OutputStreamWriter outputStreamWriter = null;
try {
inputStreamReader = new InputStreamReader(new FileInputStream("D:\\1.txt"), "UTF-8");
outputStreamWriter = new OutputStreamWriter(new FileOutputStream("D:\\2.txt"),"UTF-8");
char [] car = new char[1024];
int length = 0;
while((length=inputStreamReader.read(car))!=-1) {
outputStreamWriter.write(car,0,length);
}
outputStreamWriter.flush();
} catch (Exception e) {
e.printStackTrace();
}finally {
if(inputStreamReader!=null) {
try {
inputStreamReader.close();
} catch (IOException e) {
e.printStackTrace();
}
}
if(outputStreamWriter!=null) {
try {
outputStreamWriter.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
}
数据流
方便进程中数据存入文件;
import java.io.DataInputStream;
import java.io.DataOutputStream;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
public class Test {
public static void main(String[] args) {
DataOutputStream dataOutputStream = null;
DataInputStream dataInputStream = null;
try {
dataOutputStream = new DataOutputStream(new FileOutputStream("D:\\data.temp"));
dataOutputStream.writeDouble(9.9);
dataOutputStream.writeDouble(1.1);
dataOutputStream.flush();
dataInputStream = new DataInputStream(new FileInputStream("D:\\data.temp"));
while(true) {
Double p = dataInputStream.readDouble();
System.out.println(p);
}
} catch (Exception e) {
e.printStackTrace();
}finally {
if(dataOutputStream!=null) {
try {
dataOutputStream.close();
} catch (IOException e) {
e.printStackTrace();
}
}
if(dataInputStream!=null) {
try {
dataInputStream.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
}
import java.io.DataInputStream;
import java.io.DataOutputStream;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
public class Test {
public static void main(String[] args) {
Double price = 9.9;
DataOutputStream dataOutputStream = null;
DataInputStream dataInputStream = null;
try {
dataOutputStream = new DataOutputStream(new FileOutputStream("D:\\data.temp"));
dataOutputStream.writeDouble(9.9);
dataOutputStream.writeUTF("TomAndJerry");;
dataOutputStream.flush();
dataInputStream = new DataInputStream(new FileInputStream("D:\\data.temp"));
Double p = dataInputStream.readDouble();
System.out.println(p);
String n = dataInputStream.readUTF();
System.out.println(n);
} catch (Exception e) {
e.printStackTrace();
}finally {
if(dataOutputStream!=null) {
try {
dataOutputStream.close();
} catch (IOException e) {
e.printStackTrace();
}
}
if(dataInputStream!=null) {
try {
dataInputStream.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
}