原文出处:http://developer.51cto.com/art/201109/292225.htm
--->删除文件
# String fileName="D:"+File.separator+"hello.txt";
# File f=new File(fileName);
# if(f.exists()){
# f.delete();
# }else{
# System.out.println("文件不存在");
# }
f.mkdir();
# File f=new File(fileName);
# File[] str=f.listFiles(); //f.list
if(temp.isFile())
if(temp.isDirectory())
续传文件
# RandomAccessFile demo=new RandomAccessFile(f,"rw");
# demo.writeBytes("asdsad");
字节流 向文件中写入字符串
OutputStream out =new FileOutputStream(f); //追加;new FileOutputStream(f,true);
读文件
FileInputStream input = new FileInputStream(temp);
byte[] b = new byte[1024 * 5];
while ( (len = input.read(b)) != -1)
字符流
#写 Writer out =new FileWriter(f); //追加 new FileWriter(f,true);
# String str="hello";
# out.write(str);
#读 char[] ch=new char[100];
# Reader read=new FileReader(f);
# int count=read.read(ch);
将上面的字节流和字符流的程序的最后一行关闭文件的代码注释掉,然后运行程序看看。你就会发现使用字节流的话,文件中已经存在内容,但是使用字符流的时候,文件中还是没有内容的,这个时候就要刷新缓冲区。
使用字节流好还是字符流好呢? 答案是字节流。首先因为硬盘上的所有文件都是以字节的形式进行传输或者保存的 字符流开发方便
整个IO类中除了字节流和字符流还包括字节和字符转换流。
OutputStreramWriter将输出的字符流转化为字节流
InputStreamReader将输入的字节流转换为字符流
但是不管如何操作,最后都是以字节的形式保存在文件中的。将字节输出流转化为字符输出流
Writer out=new OutputStreamWriter(new FileOutputStream(file)); //将输出的字符流转化为字节流
Reader read=new InputStreamReader(new FileInputStream(file));
# char[] b=new char[100];
# int len=read.read(b);
以内容为输出输入目的地
ByteArrayInputStream 主要将内容写入内容
ByteArrayOutputStream 主要将内容从内存输出
管道流主要可以进行两个线程之间的通信。
PipedOutputStream 管道输出流
PipedInputStream 管道输入流
# BufferedReader buf = new BufferedReader(
# new InputStreamReader(System.in));
Scanner的小例子,从键盘读数据
SequenceInputStream主要用来将2个流合并在一起,比如将两个txt中的内容合并为另外一个txt。下面给出一个实例:
# SequenceInputStream sis = new SequenceInputStream(input1, input2);
# int temp = 0;
# while((temp = sis.read()) != -1){
# output.write(temp);
# }
文件压缩 ZipOutputStream类
# ZipOutputStream zipOut = new ZipOutputStream(new FileOutputStream(
# zipFile));
# zipOut.putNextEntry(new ZipEntry(file.getName()));
# // 设置注释
# zipOut.setComment("hello");
# int temp = 0;
# while((temp = input.read()) != -1){
# zipOut.write(temp);
# }
对象序列化就是把一个对象变为二进制数据流的一种方法。