21.java当中的IO
- I/O操作的目标
- 从数据源当中读取数据,以及将数据写入到数据目的地当中
- I/O的流向
- 以java程序为参照物

- I/O的分类
- 第一种分法
- 输入流
- 输出流
- 第二种分法
- 字节流
- 字符流
- 第三种分法
- 节点流
- 处理流
- I/O当中的核心类

- 读取文件和写入文件的方法
- 核心类的核心方法

- read方法
//第一步,导入类import java.io.*;classTest{publicstaticvoid main(String args []){//声明输入流引用FileInputStream fis = null;try{//生成代表输入流的对象fis =newFileInputStream("D:/work/src/from.txt");//生成一个字节数组byte [] buffer =new byte[10];//调用输入流对象的read方法,读取数据fis.read(buffer,0,buffer.length);for(int i =0; i < buffer.length; i++){System.out.println(buffer[i]);}}catch(Exception e){System.out.println(e);}}}
结果:
D:\work\src>javac Test.java
D:\work\src>java Test
97
98
99
100
0
0
0
0
0
0
- write方法
//第一步,导入类import java.io.*;classTest{publicstaticvoid main(String args []){//声明输入流引用FileInputStream fis = null;//声明输出流的引用FileOutputStream fos = null;try{//生成代表输入流的对象fis =newFileInputStream("D:/work/src/from.txt");//生成代表输出流的对象fos =newFileOutputStream("D:/work/src/to.txt");//生成一个字节数组byte [] buffer =new byte[10];//调用输入流对象的read方法,读取数据int temp = fis.read(buffer,0,buffer.length);fos.write(buffer,0,temp);//String a = new String(buffer);//调用一个Strng对象的trim方法,将会去掉这个字符串//的首位空格和空字符//s = s.trim();//System.out.println(s);}catch(Exception e){System.out.println(e);}}}
结果:

- 大文件的读写方法
//第一步,导入类import java.io.*;classTest{publicstaticvoid main(String args []){//声明输入流引用FileInputStream fis = null;//声明输出流的引用FileOutputStream fos = null;try{//生成代表输入流的对象fis =newFileInputStream("D:/work/src/from.txt");//生成代表输出流的对象fos =newFileOutputStream("D:/work/src/to.txt");//生成一个字节数组byte [] buffer =new byte[1024];while(true){//调用输入流对象的read方法,读取数据int temp = fis.read(buffer,0,buffer.length);if(temp ==-1){break;}fos.write(buffer,0,temp);}//String a = new String(buffer);//调用一个Strng对象的trim方法,将会去掉这个字符串//的首位空格和空字符//s = s.trim();//System.out.println(s);}catch(Exception e){System.out.println(e);}finally{//捕获关闭IO流可能出现的异常try{fis.close();fos.close();}catch(Exception e){System.out.println(e);}}}}
- 字符流的使用方法
- 字符流:读写文件时,以字符流为基础
- 字节输入流:Reader <-- FileReader
- int read(char [ ] c,int off,int len)
//int writer(char [] c,int off,int len)import java.io.*;publicclassTestChar{publicstaticvoid main(String args []){FileReader fr = null;FileWriter fw = null;try{fr =newFileReader("D:/work/src/from.txt");fw =newFileWriter("D:/work/src/to.txt");char[] buffer =newchar[100];int temp = fr.read(buffer,0,buffer.length);for(int i =0; i < buffer.length; i++){System.out.println(buffer[i]);}}catch(Exception e){System.out.println(e);}//finally}}
结果:
D:\work\src>javac TestChar.java
D:\work\src>java TestChar
a
b
c
d
(后面为95个空字符)
- 字节输出流:Writer <-- FileWriter
- int writer(char [ ] c,int off,int len)
//int writer(char [] c,int off,int len)import java.io.*;publicclassTestChar{publicstaticvoid main(String args []){FileReader fr = null;FileWriter fw = null;try{fr =newFileReader("D:/work/src/from.txt");fw =newFileWriter("D:/work/src/to.txt");char[] buffer =newchar[100];int temp = fr.read(buffer,0,buffer.length);fw.write(buffer,0,temp);}catch(Exception e){System.out.println(e);}finally{try{fr.close();fw.close();}catch(Exception e){System.out.println(e);}}}}

浙公网安备 33010602011771号