JAVA中I/O流的使用

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了JAVA中I/O流的使用相关的知识,希望对你有一定的参考价值。

值此新年之际我开始了自己的第一篇博客,首先祝大家新年快乐,学习工作进步,在此我在Java编程的学习中将有一些自己的心得或者说学的的经验和大家分享,还望指正共同学习,下面我将所学I/O流的相关问题与大家分享学习.

I/O流在我们以后的java编程中是比较重要的一部分,我们学习Java必定少不了对文件的操作,而I/O流就是我们操作的基础,因此我们需要掌握四中流的使用,在java中我们可以把流分为输入和输出两类,或者可以按字节流和字符流分.

即:输出流有,字符输出流,字节输出流.

输入流有,字符输出流,字节输出流.

而按字节和字符分则是,字节流和字符流分别都有自己的输入输出方法.

下面我们先介绍字节输入流:

//首先我们把需要用到的包需要先导入

import java.io.FileInputStream;

import java.io.FileNotFoundException;

import java.io.IOException;

public class text01 {  

  public static void main(String[] args) throws FileNotFoundException {  

//因为是字节输入流我们会读出文件的内容,要选择找到文件的路径下面的路径在FileInputStream("D:\\java.txt")中后面写入我们的路径.

但是这个类本身会抛出一个异常因此我们需要选择处理方式,可以继续往上抛,或者用try-catch方法来进行处理.

     FileInputStream fis = new FileInputStream("D:\\java.txt");      

//在使用本方法的过程中需要一个字节数组来作为缓冲区,我们读到的字节流会先存在缓冲区中.

    byte[] bytes= new byte[1024];      

    int a;   

    try {  

//我们使用字节输入流的read方法来进行读取,同时将数据读取到字节数组中.

      a = fis.read(bytes);     

     while (a!=-1) {       

       String c= new String(bytes);   

//读取后把字节数组可以转化为字符串,同时用循环的方法使用,以免字节数组长度达到极限造成的读取不完整. 

        System.out.println(c);    

         a= fis.read(bytes);   

        }   

        } catch (IOException e) {       

     e.printStackTrace();  

       }finally{  

        try {   

//最后我们要关闭流,关闭时会报一个异常,我们在这里进行处理.

          fis.close();   

        } catch (IOException e) {    

           e.printStackTrace();   

       }   

     }    

   }

}

 

接下来我们介绍字节输出流:

字节输出流与字节输入流有很多相识之处,首先我们要做的也是导包.

 

import java.io.FileNotFoundException;

import java.io.FileOutputStream;

import java.io.IOException;

public class shuchuliuoutput {

   public static void main(String[] args) throws IOException {   

//同字节输入流一样我们需要选择文件路径,可以自定义文件夹名称,我们可以在路径后面写上true这个值,表示不覆盖原有文件内容,否则会覆盖掉之前的.

    FileOutputStream fos = new FileOutputStream("D:\\writeh",true);

//创一个要输出的内容

     String bc = new String("haohaohao");

//将输入的内容转化为一个字节数组

      byte[] bytes=bc.getBytes();  

//用FileOutputStream的write方法来输出写出,同理 此方法会有一个异常可以继续抛出或者处理.

     fos.write(bytes,0,bytes.length);

//关闭流

      fos.close();

   }

}

我们在看字符输入流:

//其过程与字节输入流很像,只是将字节数组换成字符数组

import java.io.FileNotFoundException;

import java.io.FileReader;

import java.io.IOException;

public class zifishuchu {  

  public static void main(String[] args) throws IOException {   

    FileReader fr = new FileReader("D:\\java.txt");   

    char[] cc = new char[1024];  

     int data;   

    while ((data=fr.read(cc))!=-1) {  

       String aa=new String(cc);   

       System.out.println(aa);    

      }  

   fr.close();  

  }

}

 

我们在看字符输出流:

import java.io.FileWriter;

import java.io.IOException;

public class writeshuchu {  

  public static void main(String[] args) throws IOException {   

    FileWriter fw = new FileWriter("D:\\wenjian.txt");

     String cc = "好好学习,天天向上";   

    char[] aa = cc.toCharArray();   

    fw.write(aa, 0, aa.length);  

     fw.close();

   }

}

 

以上是关于JAVA中I/O流的使用的主要内容,如果未能解决你的问题,请参考以下文章

java I/O流基础(知识+代码示例)

Java I/O流的总结

Java——关于Java中I/O流的面试题

Java——5个关于Java中I/O流的面试题

Java输入输出流的使用详细介绍

Java NIO学习