java I0操作小结

来源:互联网 发布:30天不睡觉实验 知乎 编辑:程序博客网 时间:2024/06/06 07:35

一.java当中I/0流操作(字节流操作)

1.I/O操作的目标?
  从数据源当中读取数据,以及将数据写入到数据目的地当中。
2.I/0的分类方法
 1)第一种分类:
   a.输入流;
   b.输出流;
 2)第二种分类:
   a.字节流
   b.字符流
 3)第三种分类
   a.节点流
   b.处理流。  
3.读取文件和写文件的方法。
4.数据流,从文件和java程序中建立一个输入输出管道
5.I/0字节流的当中的核心类
1)inputStream   抽象类
2)OouputStream  抽象类
3)最常用的InputStream子类是FileInputStream
4)最常用的OutputStream子类是FileOutInpuStream
6. 核心类的核心方法
1)InputStream;
intread(byte[] b, int off, int len); b要读取的字节流数组,off表示要从哪个位置开始的读取,len表示一次最多读取的个数。
返回值是这次成功read多少字节的数据。

2)OutputStream:
   void write(byte [] b, int off, int len); b要写入的字节流数组,off表示要从哪个位置开始的写入,len表示一次最多写入的个数。
 
7.I/O系统的主要目标是为了对数据进行读写操作。
8.数据的流向以java程序  为参照物
9.I/O流可以分三种分类方法;
10.I/O流中的read方法和write方法使用。

11.java 例子

//导入类;
import java.io.*;
class Test{
    public static void main(String args[]){
      //fileReadDate();
   fileWriteData();
 }
 

//需要声明为静态方法
 private static void fileWriteData(){
     //声明输出流的引用
     FileOutputStream fos = null;
  FileInputStream fis = null;
  try{
      //生成代表输入流对象
      fis = new FileInputStream("e:/javaSrc/from.txt");
   //生成代表输出流对象
   fos = new FileOutputStream("e:/javaSrc/to.txt");
   //生成一个字节数组
   byte [] buffer = new byte[100];
   //调用输入流对象的read方法,读取数据
   int  temp = fis.read(buffer, 0, buffer.length);
  
   fos.write(buffer, 0, temp);
   
  }catch(Exception e){
      System.out.println(e);
  }
  
  try{
     fos.close();
  }catch(Exception e){
     System.out.println(e);
  }
  
  try{
     fis.close();
  }catch(Exception e){
      System.out.println(e);
  }
 }
 
 private static void fileReadDate(){
      //声明输入流引用
     FileInputStream fis = null;
     try{
     //从文件里面导入,生成代表输入流的对象
     fis = new FileInputStream("e:/javaSrc/from.txt");
     //生成一个字节数组
     byte [] buffer = new byte[100];
     //调用输入流对象的read方法,读取数据
     fis.read(buffer, 0, buffer.length);
    // fis.read(buffer, 4, buffer.length-4);
     //for(int i= 0;i<buffer.length;i++){
     //    System.out.println(buffer[i]);
     //}
     //字节数组转成字符串
     String s = new String(buffer);
     //String对象的trim方法,将会去除掉这个字符串的首位空格和空字符
     s.trim();
     System.out.println(s);
  }catch(Exception e){
     System.out.println(e);
  }
  try{
   //关闭流对象
   fis.close();
  }catch(Exception e){
   System.out.println(e);
  }
 }
}

 

12.字符流 ,读写文件时,以字符为基础
 1)字节输入流: Reader  《--- FileReader
     //c 字符数组, off偏移量,len读取的长度
    int read(char []c, int off, int len);
 
 2)字节输出流:Writer 《--FileWriter
    //c 字符数组, off偏移量,len读取的长度
   int write(char []c, int off, int len);
 
13.字符流例子
import java.io.*;

public class TestChar{
     public static void main(String args[]){
           FileWriterReaderData();
     }
 
  private static void FileWriterReaderData(){
       FileReader fr = null;
       //声明输出流的引用
       FileWriter fw = null;
      try{
           // 生成代表输入流的对象
          fr = new FileReader("e:/javaSrc/from.txt");
          //生成代表输出流的对象
          fw = new FileWriter("e:/javaSrc/to.txt");
          //生成一个字节数组
         char [] buffer = new char[100];
    
         while(true){
              //调用输入流对象的read方法,读取数据
             int temp = fr.read(buffer, 0, buffer.length);
             if(temp == -1){
                 break;
             }
            //调用输出流对象的write方法,写入数据
            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);
        }
    }
  }
 
  private static void FileReaderData(){
        FileReader fr = null;
        //声明输出流的引用
        FileWriter fw = null;
        try{
              // 生成代表输入流的对象
              fr = new FileReader("e:/javaSrc/form.txt");
              //生成代表输出流的对象
             fw = new FileWriter("e:/javaSrc/to.txt");
             //生成一个字节数组
            char [] buffer = new char[100];
            int temp = fr.read(buffer, 0, buffer.length);
            for(int i=0; i<buffer.length; i++){
                 System.out.println(buffer[i]);
            }
    
            fw.write(buffer, 0, buffer.length);       
        } catch(Exception e){
             System.out.println(e);
       }finally{
            try{
                 fr.close();
                 fw.close();
            } catch(Exception e){
                 System.out.println(e);
           }
      }
  }
}

 

 

原创粉丝点击