Java中几种不同的IO方法

mac2024-05-25  31

Java.io 包几乎包含了所有操作输入、输出需要的类。所有这些流类代表了输入源和输出目标。 Java.io 包中的流支持很多种格式,比如:基本类型、对象、本地化字符集等等。 一个流可以理解为一个数据的序列。输入流表示从一个源读取数据,输出流表示向一个目标写数据。 Java 为 I/O 提供了强大的而灵活的支持,使其更广泛地应用到文件传输和网络编程中。

本文涉及了FileReader/FileWriter、BufferedReader/BufferedWriter进行读写。

package com.io; import java.io.BufferedReader; import java.io.BufferedWriter; import java.io.FileNotFoundException; import java.io.FileReader; import java.io.FileWriter; import java.io.IOException; public class CopyFileSummary { public static void main(String[] args) throws IOException { // TODO Auto-generated method stub String sourceFile,targetFile; sourceFile = "Sample_input_network.txt"; targetFile = "copyFile.txt"; //test 5 methods //copyMethod1(sourceFile,targetFile); //copyMethod2(sourceFile,targetFile); //copyMethod3(sourceFile,targetFile); //copyMethod4(sourceFile,targetFile); copyMethod5(sourceFile,targetFile); } //基本流一次读写一个字符 public static void copyMethod1(String sourceFile, String targetFile) throws IOException { FileReader fr = new FileReader(sourceFile); FileWriter fw = new FileWriter(targetFile); int ch; while((ch=fr.read())!=-1) { fw.write((char)ch); } //free fw.close(); fr.close(); } //基本流一次读写一个字符数组 public static void copyMethod2(String sourceFile, String targetFile) throws IOException { FileReader fr = new FileReader(sourceFile); FileWriter fw = new FileWriter(targetFile); char[] chs = new char[1024]; int len; while((len=fr.read(chs))!=-1) { fw.write(chs, 0, len); } //free fw.close(); fr.close(); } //缓冲流一次读写一个字符 public static void copyMethod3(String sourceFile, String targetFile) throws IOException { BufferedReader br = new BufferedReader(new FileReader(sourceFile)); BufferedWriter bw = new BufferedWriter(new FileWriter(targetFile)); int ch; while((ch= br.read())!=-1) { bw.write(ch); } bw.close(); br.close(); } //缓冲流一次读写一个数组 public static void copyMethod4(String sourceFile, String targetFile) throws IOException { BufferedReader br = new BufferedReader(new FileReader(sourceFile)); BufferedWriter bw = new BufferedWriter(new FileWriter(targetFile)); char[] chs = new char[1024]; int len; while((len = br.read(chs))!=-1) { bw.write(chs,0,len); } bw.close(); br.close(); } //缓冲流一次读写一个字符串 public static void copyMethod5(String sourceFile, String targetFile) throws IOException { BufferedReader br = new BufferedReader(new FileReader(sourceFile)); BufferedWriter bw = new BufferedWriter(new FileWriter(targetFile)); String line; while((line = br.readLine())!=null) { bw.write(line); bw.newLine(); bw.flush(); } bw.close(); bw.close(); } }

sourceFile

targetFile

最新回复(0)