FileOutputStream和FileInputStream
第一种是FileOutputStream和FileInputStream,一些平台一次只允许一个 FileOutputStream(或其他文件写入对象)打开文件进行写入。在这种情况下,则此类中的构造方法将失败。FileOutputStream是适用于写入诸如图像数据之类的原始字节的流。要写入字符流,请考虑使用 FileWriter。下面例子来源网络摘录:
[java] view plaincopyprint?import java.util.*;
import java.io.*;
public class fileoutputstreamtest
{
public static void main(String[] args) throws IOException
{
File file1 = new File("FileIn&OutputStreamTest.txt");
FileOutputStream output = new FileOutputStream("FileIn&OutputStreamTest.txt");
output.write(1);
output.flush();
output.close();
FileInputStream input = new FileInputStream("FileIn&OutputStreamTest.txt");
int a = input.read();
System.out.println(a);
input.close();
}
}
import java.util.*;
import java.io.*;
public class fileoutputstreamtest
{
public static void main(String[] args) throws IOException
{
File file1 = new File("FileIn&OutputStreamTest.txt");
FileOutputStream output = new FileOutputStream("FileIn&OutputStreamTest.txt");
output.write(1);
output.flush();
output.close();
FileInputStream input = new FileInputStream("FileIn&OutputStreamTest.txt");
int a = input.read();
System.out.println(a);
input.close();
}
}
FileWriter和FileReader
第二种即FileWriter和FileReader,是字符流,因为没有缓冲器所以是一个比较慢的读写文件类,下面代码来源于网络
[java] view plaincopyprint?import java.util.*;
import java.io.*;
public class FileReader_Writer
{
public static void main(String[] args) throws IOException
{
File file2 = new File("FileRead&Write.txt");
FileWriter fw = new FileWriter("FileRead&Write.txt");
char str1[] = "Test the FileReader & FileWriter".toCharArray();
fw.write(str1);
fw.flush();
fw.close();
FileReader fr = new FileReader("FileRead&Write.txt");
int n = 0;
while((n = fr.read(str1,0,2))!=-1)
{
String str2 = new String(str1,0,n);
System.out.print(str2);
}
}
因为FileReader和FileWriter是字符流,在没有缓冲器的情况下要使用字符串的形式进行读写,会有乱码错误出现。其实FileReader和BufferedReader可以一起使用,它们一起出现的话读文件的速度会很快,至少比没有缓冲的FileReader快很多。下面代码来源于网络:
import java.io.*;
public class FileReader_Writer
{
public static void main(String[] args) throws IOException
{
File file2 = new File("FileRead&Write.txt");
FileWriter fw = new FileWriter("FileRead&Write.txt");
String str1 = "Test the FileReader & FileWriter";
fw.write(str1);
fw.flush();
fw.close();
FileReader fr = new FileReader("FileRead&Write.txt");
BufferedReader br = new BufferedReader(fr);
String str2 = br.readLine();
System.out.println(str2);
}
}
BufferedReader和BufferedWriter
第三种读写方式即BufferedReader和BufferedWriter,BufferedReader会一次性从物理流中读取8k(默认数值,可以自己进行设置和更改)字节内容到内存,如果外界有请求,就会到这里存取,如果内存里没有才到物理流里再去读。因为对物理流的每次读取,都会伴有IO操作而且IO操作是最耗费时间的。,BufferedReader就是减少了大量IO操作,而为你节省了时间。所以大家尽管用这种文件读写方法吧!