Java写入文件:
- /**
- * FileWrite 适用于文件量少的写入,因为它是直接写入到文件的不会进行缓存。也是最简单的方式
- * BufferedWriter和FileWrite 有点相似,但是的话他是利用了缓存区来写入,降低了IO的操作,提高了很多的性能适用于大数据量的操作
- * FileOutputStream 的性能介于前两者之间
- */
FileWriter BufferedWriter FileoutputStream
1.FileWriter
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileWriter;
import java.io.IOException;
public class fileTest1 {
public static void main(String[] args){
File fe = new File("d:/t.txt");
FileWriter fr = null;
BufferedWriter bw = null;
try {
fr = new FileWriter(fe);
bw = new BufferedWriter(fr);
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
try {
bw.write("aa");
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
try {
bw.flush();
bw.close();
fr.close();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
2. FileOutputStream
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.OutputStreamWriter;
import java.io.Writer;
public class output {
public static void main(String[] args) throws IOException{
File fr = new File("d:/z.txt");
try {
if(!fr.exists()){
fr.createNewFile();
}
FileOutputStream fus = new FileOutputStream(fr);
OutputStreamWriter osw = new OutputStreamWriter(fus);
BufferedWriter bw = new BufferedWriter(osw);
for(int i = 0;i<=3;i++){
bw.write("你好" + "\r\n");
}
bw.flush();
bw.close();
fus.close();
} catch (FileNotFoundException e) {
e.printStackTrace();
}
}
}
Java读取文件:
1.一次读入一行:
import java.io.BufferedReader;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.InputStreamReader;
public class input {
public static void main(String[] args) throws IOException{
File fr = new File("d:/z.txt");
BufferedReader br = null;
try {
FileInputStream fis = new FileInputStream(fr);
InputStreamReader isd = new InputStreamReader(fis);
br = new BufferedReader(isd);
String temString = null;
int line = 1;
//一次读入一行,直到读入null为文件结束
while((temString = br.readLine())!=null){
System.out.println("line" + line + ":" + temString);
line++;
}
br.close();
isd.close();
fis.close();
} catch (FileNotFoundException e) {
e.printStackTrace();
}
}
}
不同方式读取文件:
http://www.cnblogs.com/lovebread/archive/2009/11/23/1609122.html
FileReader 和FileWriter分别是InputStreamReader和outputStreamWriter的子类,他们的write和read方法其实是同一个方法。所以没有什么不一样。缓存的话可以考虑使用BufferedReader 和BufferedWriter 这个是带有缓存的封装。 FileReader,FileWriter 是读字符的,1个字符是2个字节,16位。 OutputStream ,InputStream是读字节的,1个字节是8位。 要是读汉字,一个汉字是2个字节,用InputStream读就把汉字活生生的拆一半了,自己可以写程序验证下。 字符流主要读文本比较效率。字节流主要读二进制文件,图片就是为了防止出现读取的单位放大,出现无法还原本程序的目的。