关于java io流操作文件探讨

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了关于java io流操作文件探讨相关的知识,希望对你有一定的参考价值。

      1.任务描述

    2.读取一个字符

  3.读取整个文件

  4.复制文件

  5.复制大文件

  6.利用字符流解决乱码问题

一.任务描述

  大家都知道程序是程序的运行是离不开内存的,但是很多东西并不在程序当中,而程序也需要操作它们。所以就需要一个东西与内存外的资源打交道,我们就把这个东西称为io流。io流分为输出流和输入流,输出流是将内存中的东西输出到内存之外,输入流是将内存之外的东西读取到内存中。一旦有了io流之后,与内存之外的资源打交道就十分方便了。为什么这么说,其实总体上就只需要三步操作,第一步,定位数据源,第二步,建立管道,第三步,操作管道。对于第一步来说,如果是操作硬盘上面的资源

package test;

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

/**
 *
 * @author user
 *
 */
public class MyFIleStream {
    public static void main(String[] args) {
        // 定位数据源
        File file = new File("d:\\liu.txt");
        File file1 =new File("d:\\liu1.txt");
        // 建立字节流管道
        try {
            FileInputStream fis = new FileInputStream(file);
            FileOutputStream ops=new FileOutputStream(file1);
            
            
            // 操作管道
            int length = fis.available();
            for (int i = 0; i < length; i++) {
                System.out.println((char)fis.read());
                ops.write(fis.read());
            }
        } catch (FileNotFoundException e) {

            e.printStackTrace();
        } catch (IOException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
    }
}
package test;

import java.io.BufferedReader;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.io.PrintWriter;
/**
 * 关于读取文件的操作
 * 1.最好少用FileReader字符流读取文件,因为他是采用默认的系统字符编码进行解码
 *         解决方法:
 *             可以采用输入字符流InputStreamReader代替FileReader;他可以指定字符编码.
 * 2.怎样高效遍历整个文本文件
 *      可以使用缓冲流BufferedReader流读取,每次读取一行.
 * @author user
 *
 */
public class FileOprate2 {
    public static void main(String[] args) {
        File f=new File("d:\\liu.txt");
        File f1=new File("d:\\liu1.txt");
        char[] chs=new char[1024];
        try {
            InputStreamReader insr=new InputStreamReader(new FileInputStream(f),"utf-8");
            OutputStreamWriter osw=new OutputStreamWriter(new FileOutputStream(f1),"utf-8");
            PrintWriter pw=new PrintWriter(osw);
            BufferedReader br=new BufferedReader(insr);
            while(br.ready()){
                //System.out.println(br.readLine());
                pw.write(br.readLine());
            }
            pw.close();
            
        } catch (FileNotFoundException e) {

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

            e.printStackTrace();
        }
    }
}

























































































以上是关于关于java io流操作文件探讨的主要内容,如果未能解决你的问题,请参考以下文章

Java中的IO流如何理解——精简

Java编程基础之IO流

java文件操作(IO流)

java-关于文件操作-输出流的使用

Java之IO流

java io流 对文件操作