------- android培训、java培训、期待与您交流! ----------
一字符流缓冲
BufferedWriter
BufferedReader
构建步骤;(写入缓冲区)
1.开流,开缓冲区
FileWriter fw=null;
BufferedWriter bufw=null;
2.找流的实例对象,将实例对象传入缓冲区
fw=new FileWriter("buf.txt");
bufw=new BufferedWriter(fw);
3.再用缓冲区再写
bufw.write("123");
4.写完后换行
bufw.newLine();
5.最后刷新
bufw.flush();
6.关闭缓冲区
bufw.close()
//其实关闭缓冲区也就是关闭流了
读入缓冲区的构建步骤
1.开流,开缓冲区
FileReader fr=null;
BufferedReader bufr=null;
2.建立流的实例对象,传流进去缓冲区
fr=new FileReader("buf.txt");
bufr=new BufferedReader(fr);
3.开始用缓冲区来读
String line=bufr.readLine()
4.关闭缓冲区
bufr.close();
二.自定义ReadLine()方法
private FileReader r;
MyBufferedReader(FileReader r)
{
this.r=r;
}
public String myReadLine() throws IOException
{
StringBuilder sb=new StringBuilder()
int ch=0;
while((ch=r.read())!=-1)
{
if(ch=='\r')
continue;
if(ch=='\n')
return sd.toString();
else
sb.append((char)ch);
}
return null;
}
三.装饰设计模式
将已有的对象,传入到另外一个类,可以加强方法
举例
class Person
{
public void eat(){
sop("吃饭
}
class SuperPerson
{
private Person p;
SuperPerson(Person p)
{
this.p=p;
}
public void show(){
p.eat()
sop("12300");
}
class Test
{
public static void main(String[] args)
{
Person p=new Person()
p.eat();
SuperPerson su=new SuperPerson(p)
su.show();
}
}
}
}
四.装饰类和继承的关系
装饰类要比继承灵活,避免了继承体系的臃肿,降低了关联性在,增强了已有的对象
五.获取文件的大小
FileInputStream fis=new FileInputStream("fos.txt");
byte[] buf=new byte[fis.available()];//定义一个刚刚好的缓冲区,获取一个文件的大小了
六.读图片和MP3的实例
读图片
class CopyPic
{
public static void main(String[] args)
{
FileOutputStream fos=null;
FileInputStream fis=null;
try
{
fos=new FileOutputStream("");
fis=new FileInputStream("");
byte[] buf=new byte[1024];
int len=0;
while((len=fis.read(buf))!=-1)
{
fos.writer(buf,0,len)
}
}
catch(IOException e)
{
throw new RuntimeExecption("");
}
finally
{
try
{
if(fis!==null)
fis.close();
}
catch(IOException e)
{
}
try
{
if(fos!==null)
f0s.close();
}
catch(IOException e)
{
}
}
}
///////////////////////////////////////////////////////////////
import java.io.*
class CopyMp3
{
public static void main(String[] args)
{
long start=System.currenTimeMills();
copy_1();
long end=System.currenTimeMills();
sop(end-start);
}
public static void copy_1() throw IOException;
{
BufferedInputStream bufis =new BufferedInputStream("");
BufferedOutputStream bufos =new BufferedOutputStream("");
int by=0;
while((by=bufis.read())!=-1)
{
bufos.write(by);
}
bufis.close();
bufos.close();
}
}