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

版权声明:本文为博主原创文章,转载请附上博文链接! https://blog.csdn.net/f2764052703/article/details/89287220

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");

    	}
	}

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

猜你喜欢

转载自blog.csdn.net/f2764052703/article/details/89287220