21.java当中的IO

  • I/O操作的目标
    • 从数据源当中读取数据,以及将数据写入到数据目的地当中
    • I/O的流向
      • 以java程序为参照物
                
 
  • I/O的分类
    • 第一种分法
      • 输入流
      • 输出流
    •  第二种分法
      • 字节流
      • 字符流
    • 第三种分法
      • 节点流
      • 处理流
    • I/O当中的核心类
                
 
 
  • 读取文件和写入文件的方法
    • 核心类的核心方法
                
 
    • read方法
  1. //第一步,导入类
  2. import java.io.*;
  3. classTest{
  4. publicstaticvoid main(String args []){
  5. //声明输入流引用
  6. FileInputStream fis = null;
  7. try{
  8. //生成代表输入流的对象
  9. fis =newFileInputStream("D:/work/src/from.txt");
  10. //生成一个字节数组
  11. byte [] buffer =new byte[10];
  12. //调用输入流对象的read方法,读取数据
  13. fis.read(buffer,0,buffer.length);
  14. for(int i =0; i < buffer.length; i++){
  15. System.out.println(buffer[i]);
  16. }
  17. }
  18. catch(Exception e){
  19. System.out.println(e);
  20. }
  21. }
  22. }
结果:
D:\work\src>javac Test.java
 
D:\work\src>java Test
97
98
99
100
0
0
0
0
0
0
 
    • write方法
  1. //第一步,导入类
  2. import java.io.*;
  3. classTest{
  4. publicstaticvoid main(String args []){
  5. //声明输入流引用
  6. FileInputStream fis = null;
  7. //声明输出流的引用
  8. FileOutputStream fos = null;
  9. try{
  10. //生成代表输入流的对象
  11. fis =newFileInputStream("D:/work/src/from.txt");
  12. //生成代表输出流的对象
  13. fos =newFileOutputStream("D:/work/src/to.txt");
  14. //生成一个字节数组
  15. byte [] buffer =new byte[10];
  16. //调用输入流对象的read方法,读取数据
  17. int temp = fis.read(buffer,0,buffer.length);
  18. fos.write(buffer,0,temp);
  19. //String a = new String(buffer);
  20. //调用一个Strng对象的trim方法,将会去掉这个字符串
  21. //的首位空格和空字符
  22. //s = s.trim();
  23. //System.out.println(s);
  24. }
  25. catch(Exception e){
  26. System.out.println(e);
  27. }
  28. }
  29. }
结果:
 
  • 大文件的读写方法
 
  1. //第一步,导入类
  2. import java.io.*;
  3. classTest{
  4. publicstaticvoid main(String args []){
  5. //声明输入流引用
  6. FileInputStream fis = null;
  7. //声明输出流的引用
  8. FileOutputStream fos = null;
  9. try{
  10. //生成代表输入流的对象
  11. fis =newFileInputStream("D:/work/src/from.txt");
  12. //生成代表输出流的对象
  13. fos =newFileOutputStream("D:/work/src/to.txt");
  14. //生成一个字节数组
  15. byte [] buffer =new byte[1024];
  16. while(true){
  17.    //调用输入流对象的read方法,读取数据
  18.    int temp = fis.read(buffer,0,buffer.length);
  19. if(temp ==-1){
  20. break;
  21. }
  22. fos.write(buffer,0,temp);
  23. }
  24. //String a = new String(buffer);
  25. //调用一个Strng对象的trim方法,将会去掉这个字符串
  26. //的首位空格和空字符
  27. //s = s.trim();
  28. //System.out.println(s);
  29. }
  30. catch(Exception e){
  31. System.out.println(e);
  32. }
  33. finally{
  34. //捕获关闭IO流可能出现的异常
  35. try{
  36. fis.close();
  37. fos.close();
  38. }
  39. catch(Exception e){
  40. System.out.println(e);
  41. }
  42. }
  43. }
  44. }
 
 
  • 字符流的使用方法
    • 字符流:读写文件时,以字符流为基础
    • 字节输入流:Reader <-- FileReader
      • int read(char [ ] c,int off,int len)
 
  1. //int writer(char [] c,int off,int len)
  2. import java.io.*;
  3. publicclassTestChar{
  4. publicstaticvoid main(String args []){
  5. FileReader fr = null;
  6. FileWriter fw = null;
  7. try{
  8. fr =newFileReader("D:/work/src/from.txt");
  9. fw =newFileWriter("D:/work/src/to.txt");
  10. char[] buffer =newchar[100];
  11. int temp = fr.read(buffer,0,buffer.length);
  12. for(int i =0; i < buffer.length; i++){
  13. System.out.println(buffer[i]);
  14. }
  15. }
  16. catch(Exception e){
  17. System.out.println(e);
  18. }
  19. //finally
  20. }
  21. }
结果:
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)
 
  1. //int writer(char [] c,int off,int len)
  2. import java.io.*;
  3. publicclassTestChar{
  4. publicstaticvoid main(String args []){
  5. FileReader fr = null;
  6. FileWriter fw = null;
  7. try{
  8. fr =newFileReader("D:/work/src/from.txt");
  9. fw =newFileWriter("D:/work/src/to.txt");
  10. char[] buffer =newchar[100];
  11. int temp = fr.read(buffer,0,buffer.length);
  12. fw.write(buffer,0,temp);
  13. }
  14. catch(Exception e){
  15. System.out.println(e);
  16. }
  17. finally{
  18. try{
  19. fr.close();
  20. fw.close();
  21. }
  22. catch(Exception e){
  23. System.out.println(e);
  24. }
  25. }
  26. }
  27. }
 





posted @ 2016-08-28 17:23  ArronEve  阅读(175)  评论(0编辑  收藏  举报