java I/O的基本使用

Posted Pres_Cheng

tags:

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

1.什么是I/O

  a.I/O也称为:输入输出,可以理解为In,Out

  b.I/O流:读取键盘键入的字符,硬盘上的文件

  c.处理数据的类型分类:字节流、字符流

 

  字节流:以Stream结尾的,可以处理图片、文字、音频、视频等,读取一个字节返回一个字节。

  字符流:以Reader或Writer结尾,仅能处理纯文本数据,读取一个或多个字节,再查询指定编码表,最后返回字符。

 

  字节流代码实例演示:

  

import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;

/**
 * Created by Pres_cheng on 2016/9/4.
 */
public class UsingFileStream {
    public static void main(String args[]) {
        File file = new File("D:\\Ideaworkspace\\UsingFileStream\\src\\hello.txt");
        if (!file.exists()) {
            try {
                file.createNewFile();
            } catch (IOException e) {
                e.printStackTrace();
            }
        }
        try {
            FileInputStream fis = new FileInputStream(file);
            byte[] bytes = new byte[1024];
            String str = "";
            while (fis.read(bytes) != -1) {
                str += new String(bytes,"utf-8");
            }
            System.out.println(str);
            //每次使用完流后都要关闭
            fis.close();
        } catch (FileNotFoundException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        }
    }


}
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;

/**
 * Created by Pres_cheng on 2016/9/4.
 */
public class UsingFileOutStream {
    public static void main(String args[]){
        //写入的数据
        String str = "大家好,我是学生123456abc";
        //文件的路径
        File file =new File("D:\\Ideaworkspace\\UsingFileStream\\src\\hello");
        if(!file.exists()){
            try {
                //如果不存在就创建文件
                file.createNewFile();
            } catch (IOException e) {
                e.printStackTrace();
            }
        }
        try {
            //实例化输出流
            FileOutputStream fos = new FileOutputStream(file);
            byte [] btyes = str.getBytes();
            fos.write(btyes);
            fos.close();
        } catch (FileNotFoundException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}

 

  复制图片

import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;

/**
 * Created by Pres_cheng on 2016/9/4.
 */
public class CopyFile {
    public static void main(String args[]){

        try {
            FileInputStream fis = new FileInputStream("D:\\Ideaworkspace" +
                    "\\UsingFileStream\\img.jpg");
            FileOutputStream fos = new FileOutputStream("D:\\Ideaworkspace" +
                    "\\UsingFileStream\\newImg.jpg");
            byte [] bytes = new byte[1024];
            while (fis.read(bytes) != -1){
                fos.write(bytes);
            }
            fis.close();
            fos.close();
        } catch (FileNotFoundException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}

  

  字符流实例演示:

  

import java.io.*;

/**
 * Created by Pres_cheng on 2016/9/4.
 */
public class UsingStreamReader {
    public static void main(String[] args) {
        try {
            //实例化字节流
            FileInputStream fis = new FileInputStream("D:\\Ideaworkspace" +
                    "\\UsingFileReaderAndWriter\\src\\test.txt");
            //将字节流转化给字符流
            InputStreamReader isr = new InputStreamReader(fis, "utf-8");
            FileOutputStream fos = new FileOutputStream("D:\\Ideaworkspace" +
                    "\\UsingFileReaderAndWriter\\src\\newTest.txt");
            OutputStreamWriter osw = new OutputStreamWriter(fos,"utf-8");
            char[] chars = new char[100];
            int i;
//            String str = "";
            while ((i = isr.read(chars)) != -1){
//                str += new String(chars,0,i);
                osw.write(chars,0,i);
            }
//            System.out.println(str);
            //关闭流,按照先打开后关闭后打开先关闭的原则
            osw.close();
            fos.close();
            isr.close();
            fis.close();

        } catch (FileNotFoundException e) {
            e.printStackTrace();
        } catch (UnsupportedEncodingException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}

 

 

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

深入分析Java I/O的工作机制

Java 基本I/O的学习总结(一 是什么)

Java 中的 I/O 抽象

Java NIO 入门

Java入门:Java IO入门概括

Java笔记:非阻塞I/O