Jav输入和输出
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
字节流:InputStrean和OutputStream
字节输入流是指数据以字节形式从其他文件或者终端设备想程序流入;
输入流只能从流中读取数据使用InputStrean类完成
字节输出流:数据以字节形式从程序流出,输出流只能向流中写入数据,使用OutputStream
FileInputStream是InputStrean的子类,主要用于从文件读取数据;
FileOuputStream是OutputStream的子类,主要用于向文件中写入数据。
Public FileOuputStream(File f,boolean flag)
Boolean flag 参数是可选的,true表示追加模式打开文件,false表示以覆盖模式打开文件。默认flag参数值是flase
Public FielInputStream(File file);
BufferedInputStrean和BufferedOutputStream为InputStrean和OutputStream增加了内存缓冲区,根本目的是允许java的IO流一次操作多个字节,从而提高系统的性能。BufferedInputStream(InputStrean in)//按照32个字节缓冲区的缓冲流BufferedInputStream(InputStrean in,int size)//指定大小的缓冲流
BufferedOutputStream(OutputStream in)//按照32个字节缓冲区的缓冲流BufferedOutputStream(OutputStream in,int size)//指定大小的缓冲流BufferedOutputStream 中的flush方法可以强制输出缓冲区的数据
对象序列化和反序列化;
把Java对象转换成字节序列的过程成为对象序列化
把字节序列恢复到java对象的过程叫做对象的发序列化
序列化类的对象要求实现java.io.Serializable;
File f=new File(“d:”+Fiel.separator+”stuInfo.txt”); OutputStream outStream=new FileOutputStream(f); ObjectOutputStream os=new ObjectOutputStream(outStream); Os.writeObject(new Student(“tom”,20));
outStream.close();
os.close();
//对象反序列化:自己转换成对象
File f=new File(“d:”+Fiel.separator+”stuInfo.txt”); InputStream inStream=new FileInputStream(f); ObjectInputStream os=new ObjectInputStream(in);
Object object=in。readObject();
Student stu=(Student)object;
System.out.print(“姓名”+stu.getName());
System.out.print(“姓名”+stu.getAgee());
inStream.close();
in.close();
字符流Reader和Writer 抽象类
FileReader和FileWriter是Reander和Writer的实现子类,主要用于读写文件
File f=new File(“d:demo/.doc”);
Writer out=new FileWriter(f);
Out.wirter(“Hello word”);
Out.close();
Reader reader=new FileReader(f);
Char c[]=new char[1024];
Int len=reandre.read(c);
InputStreamReader 和OutputStreamWriter 分别是Reander和Writer的子类,二者用于字节流和字符流之间的转换。
InputStreamReader用于将输入的字节流转变为字符流
OutputStreamWriter 用于将输入的字符流转变为字节流
InputStreamReader(InputStream in)
InputStreamReader(InputStream in,String charsetName)
OutputStreamWriter ((OutputStream out))
OutputStreamWriter (OutputStream out,String charsetName)
File f=new File(“d;/demo.txt”);
OutputStreamWriter os=new OutputStreamWriter(new FileOPutInStream(f));
Os.write(“hello word”);
Os.close();
BufferedReader和BufferedWriter
BufferedReader和BufferedWriter是带缓冲区的Reader和Writer.
使用BufferedReader读取文本时,将首先从文件中读取字符数据并存入缓冲区中,然后调用read(),先冲缓冲区开始读取,缓冲区不足是再从文件中读取;
使用BufferedWriter时,写入数据将先存储到缓冲区中,在缓冲区饱满的情况下将一次性写入目的地。
通过缓冲区可以减少对硬盘的输入或输出操作,提高文件存取效率。