最近,看毕老师的java基础视频,有复习了java中io操作。
首先,自己在网上找了比较全的io图:
io流可以分为两大部分:字节流和字符流。
字符流:专门用来操作字符数据,又分为reader和writer两大类。reader用来读入字符,writer用于写入数据。
对于文件的操作,我们可以直接使用FileReader()来实现,但是为了提高读取效率,我们会使用BufferedReader()。
<pre name="code" class="java">import java.io.*;
class BufferedReaderDemo
{
public static void main(String[] args) throws IOException
{
FileReader fr = new FileReader("Demo.txt");
BufferedReader mbr = new BufferedReader(fr);
String line = null;
while((line= mbr.ReadLine())!=null){
System.out.println(line);
}
mbr.Close();
}
}
writer流中较常用的也是FileWriter()和BufferedWriter()。同样BufferedWriter()是为了提高写入效率,在内存中设置缓冲区。
import java.io.*;
class CopyDemo
{
public static void main(String[] args) throws IOException
{
long start = System.currentTimeMillis();
copy();
long end = System.currentTimeMillis();
System.out.println((end-start)+"毫秒");
}
public static void copy() throws IOException
{
BufferedInputStream bufis = new BufferedInputStream(new FileInputStream("1.jpg"));
BufferedOutputStream bufos = new BufferedOutputStream(new FileOutputStream("3.jpg"));
int by = 0;
while((by=bufis.Read())!=-1)
{
bufos.write(by);
}
bufos.close();
bufis.myClose();
}
}
import java.io.*;
import java.util.*;
class SequenceDemo
{
public static void main(String[] args) throws IOException
{
Vector<FileInputStream> v= new Vector<FileInputStream>();
v.add(new FileInputStream("1.txt"));
v.add(new FileInputStream("2.txt"));
v.add(new FileInputStream("3.txt"));
Enumeration<FileInputStream> en = v.elements();
SequenceInputStream sis = new SequenceInputStream(en);
FileOutputStream fos = new FileOutputStream("4.txt");
byte[] by= new byte[1024*4];
int len =0;
while((len= sis.read(by))!=-1){
fos.write(by,0,len);
}
fos.close();
sis.close();
}
}
未完待续。。。。