Java中的IO操作:文件读取、文件写入、文件复制



Java中的IO操作:文件读取、文件写入、文件复制


一、文件读取


在Java中,文件读取主要有两种方式:字节流和字符流。其中,字节流可以读取任意类型的文件,而字符流只能读取文本文件。

下面介绍一下如何使用字节流读取文件:

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

public class ReadFile {
    public static void main(String[] args) {
        File file = new File("/path/to/file");
        FileInputStream fis = null;
        try {
            fis = new FileInputStream(file);
            byte[] data = new byte[(int) file.length()];
            fis.read(data);
            String result = new String(data);
            System.out.println(result);
        } catch (IOException e) {
            e.printStackTrace();
        } finally {
            try {
                fis.close();
            } catch (IOException e) {
                e.printStackTrace();
            }
        }
    }
}

上述代码中,先通过File类指定要读取的文件路径,然后使用FileInputStream类读取文件,最后将字节流转换为字符串输出。

如果要使用字符流读取文本文件,可以使用FileReader类或BufferedReader类。下面是使用BufferedReader类读取文件的示例:

import java.io.BufferedReader;
import java.io.File;
import java.io.FileReader;
import java.io.IOException;

public class ReadFile {
    public static void main(String[] args) {
        File file = new File("/path/to/file");
        BufferedReader reader = null;
        try {
            reader = new BufferedReader(new FileReader(file));
            String line = null;
            while ((line = reader.readLine()) != null) {
                System.out.println(line);
            }
        } catch (IOException e) {
            e.printStackTrace();
        } finally {
            try {
                reader.close();
            } catch (IOException e) {
                e.printStackTrace();
            }
        }
    }
}

上述代码中,先通过File类指定要读取的文件路径,然后使用BufferedReader类读取文件,最后逐行输出。


二、文件写入


文件写入也分为字节流和字符流。下面介绍一下如何使用字节流写入文件:

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

public class WriteFile {
    public static void main(String[] args) {
        File file = new File("/path/to/file");
        FileOutputStream fos = null;
        try {
            fos = new FileOutputStream(file);
            String data = "Hello, World!";
            fos.write(data.getBytes());
        } catch (IOException e) {
            e.printStackTrace();
        } finally {
            try {
                fos.close();
            } catch (IOException e) {
                e.printStackTrace();
            }
        }
    }
}

上述代码中,先通过File类指定要写入的文件路径,然后使用FileOutputStream类写入文件。

如果要使用字符流写入文本文件,可以使用FileWriter类或BufferedWriter类。下面是使用BufferedWriter类写入文件的示例:

import java.io.BufferedWriter;
import java.io.File;
import java.io.FileWriter;
import java.io.IOException;

public class WriteFile {
    public static void main(String[] args) {
        File file = new File("/path/to/file");
        BufferedWriter writer = null;
        try {
            writer = new BufferedWriter(new FileWriter(file));
            writer.write("Hello, World!");
        } catch (IOException e) {
            e.printStackTrace();
        } finally {
            try {
                writer.close();
            } catch (IOException e) {
                e.printStackTrace();
            }
        }
    }
}

上述代码中,先通过File类指定要写入的文件路径,然后使用BufferedWriter类写入文件。


三、文件复制


文件复制也可以使用字节流和字符流。下面介绍一下如何使用字节流复制文件:

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

public class CopyFile {
    public static void main(String[] args) {
        File source = new File("/path/to/source");
        File target = new File("/path/to/target");
        FileInputStream fis = null;
        FileOutputStream fos = null;
        try {
            fis = new FileInputStream(source);
            fos = new FileOutputStream(target);
            byte[] data = new byte[(int) source.length()];
            fis.read(data);
            fos.write(data);
        } catch (IOException e) {
            e.printStackTrace();
        } finally {
            try {
                fis.close();
                fos.close();
            } catch (IOException e) {
                e.printStackTrace();
            }
        }
    }
}

上述代码中,先通过File类指定要复制的源文件路径和目标文件路径,然后使用FileInputStream类读取源文件,FileOutputStream类写入目标文件。

如果要使用字符流复制文本文件,可以使用BufferedReader类和BufferedWriter类。下面是使用BufferedReader类和BufferedWriter类复制文件的示例:

import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;

public class CopyFile {
    public static void main(String[] args) {
        File source = new File("/path/to/source");
        File target = new File("/path/to/target");
        BufferedReader reader = null;
        BufferedWriter writer = null;
        try {
            reader = new BufferedReader(new FileReader(source));
            writer = new BufferedWriter(new FileWriter(target));
            String line = null;
            while ((line = reader.readLine()) != null) {
                writer.write(line);
                writer.newLine();
            }
        } catch (IOException e) {
            e.printStackTrace();
        } finally {
            try {
                reader.close();
                writer.close();
            } catch (IOException e) {
                e.printStackTrace();
            }
        }
    }
}

上述代码中,先通过File类指定要复制的源文件路径和目标文件路径,然后使用BufferedReader类读取源文件,BufferedWriter类写入目标文件。


猿教程
请先登录后发表评论
  • 最新评论
  • 总共0条评论