欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

java输入输出流-----文件操作

程序员文章站 2022-03-13 15:47:00
...

java中的输入输出是一种必不可少的操作,那么输入输出是什么意思呢。

输入与输出操作的对象都是内存,也就是说输入和输出两个操作是相对于计算机内存来说的
输入:程序将磁盘中的数据(也可能来源于键盘输入、网络爬取)拿出来放到内存当中的过程叫做输入。
输出:程序将内存中的数据持久化地保存在磁盘中(也可能将数据展示在屏幕上、提交到网络上)的过程叫做输出。

知道什么是输入输出了以后,我们就要知道输入输出的方式都有哪些:
输入输出共有三种方式:

  1. 按字节输入输出
  2. 按字符输入输出
  3. 使用缓冲进行输入输出

这里主要讲述如何从文件中读取数据和向文件中输出数据

那么分别来看看这几种方式都是怎么来操作的

按字节输入输出:(FileInputStream 、FileOutputStream)

代码示例:

	package ziJie;

	import java.io.*;

	public class testZiJie {
    	public static void main(String[] args){
        	try {
            	chageImg("D:\\demo\\javaBase\\src\\ziJie\\鬼刀.jpg","D:\\demo\\javaBase\\src\\ziJie\\鬼刀2.jpg");
        	} catch (IOException e) {
            	e.printStackTrace();
        	}

    	}

    	public static void chageImg(String path1,String path2) throws IOException {
    	
        	FileInputStream in = new FileInputStream(path1);
        	FileOutputStream out = new FileOutputStream(path2);
        
        	// 定义一个变量来记录从输入流获得到的字节
        	int temp;  
        	while ((temp = in.read()) != -1){
            	out.write(temp);
        	}

        	System.out.println("over");
    	}
	}

按字符输入输出(InputStreamReader、OutputStreamWriter)

使用字符进行输入输出一般是对文本文件进行的操作,因为文本文件中的数据一般都是使用字符来存储的。按字符输入输出比较方便。

示例代码:

	package objectTest;
	import java.io.*;

	public class test {
    	public static void main(String[] args) throws IOException {
        	InputStreamReader in = new InputStreamReader(new FileInputStream("D:\\demo\\javaBase\\src\\objectTest\\test1.txt"));
        	OutputStreamWriter out = new OutputStreamWriter(new FileOutputStream("D:\\demo\\javaBase\\src\\objectTest\\test2.txt"));

        	int temp ;
        	while ((temp = in.read()) != -1){
            	out.write(temp);
            	System.out.println((char)temp);
        	}

        	out.flush();       //    一定要清空输出流中的缓存,不然会导致字符流没有输出到对应文件中
        	in.close();
        	out.close();
        	System.out.println("over");

    	}
	}

在最后一定要将流中的数据刷新到文件中,不然流中的数据不能输出到文件中,最后还要将输入输出流关闭