IO流是一种数据流,把数据读入内存以及写出内存的过程中就需要通过流的方式来进行。
IO流的分类
根据IO流的方向:输入流和输出流
根据IO流的单位:字节流和字符流
根据IO流的角色:节点流和缓冲流
常用IO流:
节点流 | 缓冲流 | |
---|---|---|
字节流 | FileInputStream、FileOutputStream | BufferedInputStream、BufferedOutputStream |
字符流 | FileReader、FileWriter | BufferedReader、BufferedWriter |
字符流、字节流之间的转换:InputStreamReader、OutputStreamWriter
字节流:FileInputStream、FileOutputStream
File file=new File("hello.txt");
if(!file.exists()) file.createNewFile();
File file1=new File("demo.txt");
if(!file1.exists()) file1.createNewFile();
FileInputStream fileInputStream=new FileInputStream(file);
FileOutputStream fileOutputStream=new FileOutputStream(file1);
byte[] bytes=new byte[1024];
int len;
while ((len=fileInputStream.read(bytes))!=-1){
String string=new String(bytes,0,len );
fileOutputStream.write(bytes,0,len);
System.out.println(string);
}
fileInputStream.close();
fileOutputStream.close();
字符流:FileReader、FileWriter
File file=new File("hello.txt");
if(!file.exists()) file.createNewFile();
File file1=new File("demo.txt");
if(!file1.exists()) file1.createNewFile();
FileReader fileReader=new FileReader(file);
FileWriter fileWriter=new FileWriter(file1,true);
char[] chars=new char[1024];
int len;
while ((len=fileReader.read(chars))!=-1){
System.out.println(new String(chars, 0, len));
fileWriter.write(chars,0,len);
}
fileReader.close();
fileWriter.close();
缓冲流:(1)BufferedReader、BufferedWriter
File file=new File("hello.txt");
if(!file.exists()) file.createNewFile();
File file1=new File("demo.txt");
if(!file1.exists()) file1.createNewFile();
FileReader fileReader=new FileReader(file);
FileWriter fileWriter=new FileWriter(file1,true);
BufferedReader bufferedReader=new BufferedReader(fileReader);
BufferedWriter bufferedWriter=new BufferedWriter(fileWriter);
String readLine;
while ((readLine=bufferedReader.readLine())!=null){
bufferedWriter.write(readLine);
System.out.println(readLine);
}
bufferedReader.close();
bufferedWriter.close();
(2)BufferedInputStream、BufferedOutputStream
File file=new File("hello.txt");
if(!file.exists()) file.createNewFile();
File file1=new File("demo.txt");
if(!file1.exists()) file1.createNewFile();
FileInputStream fileInputStream=new FileInputStream(file);
FileOutputStream fileOutputStream=new FileOutputStream(file1);
BufferedInputStream bufferedInputStream=new BufferedInputStream(fileInputStream);
BufferedOutputStream bufferedOutputStream=new BufferedOutputStream(fileOutputStream);
byte[] bytes=new byte[1024];
int len;
while ((len=bufferedInputStream.read(bytes))!=-1){
bufferedOutputStream.write(bytes,0,len);
System.out.println(new String(bytes,0,len));
}
bufferedInputStream.close();
bufferedOutputStream.close();
字符流、字节流之间的转换:InputStreamReader、OutputStreamWriter
FileInputStream fileInputStream=new FileInputStream(new File("demo.txt"));
FileOutputStream fileOutputStream=new FileOutputStream(new File("hello.txt"));
BufferedReader bufferedReader=new BufferedReader(new InputStreamReader(fileInputStream));
BufferedWriter bufferedWriter=new BufferedWriter(new OutputStreamWriter(fileOutputStream));
char[] chars =new char[1024];
int len;
while ((len=bufferedReader.read(chars))!=-1){
bufferedWriter.write(chars,0,len);
System.out.println(new String(chars,0,len));
}
bufferedReader.close();
bufferedWriter.close();