欢迎来到三一办公! | 帮助中心 三一办公31ppt.com(应用文档模板下载平台)
三一办公
全部分类
  • 办公文档>
  • PPT模板>
  • 建筑/施工/环境>
  • 毕业设计>
  • 工程图纸>
  • 教育教学>
  • 素材源码>
  • 生活休闲>
  • 临时分类>
  • ImageVerifierCode 换一换
    首页 三一办公 > 资源分类 > PPT文档下载  

    Java第八章输入输出流.ppt

    • 资源ID:6510082       资源大小:331.99KB        全文页数:57页
    • 资源格式: PPT        下载积分:15金币
    快捷下载 游客一键下载
    会员登录下载
    三方登录下载: 微信开放平台登录 QQ登录  
    下载资源需要15金币
    邮箱/手机:
    温馨提示:
    用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP免费专享
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    Java第八章输入输出流.ppt

    第8章 输入输出数据流,南京农业大学谢忠红,输入输出数据流,(1)数据流的基本概念(2)java.io包中的输入输出流的基类(3)基本输入输出流的子类-文件流-缓冲输入输出流(4)IOException异常类的子类(5)随机存取文件(6)输入输出流的高级应用管道流和数据流,(1)数据流的基本概念,什么是数据流?,文件,终端,文件,网络端点,数据流,起点,终点,网络端点,程序的内存区,键盘,数据流是指所有的数据通信通道包括输入流和输出流。,public final class System extends Object static PrintStream err;/标准错误流(输出)static InputStream in;/标准输入(键盘输入流)static PrintStream out;/标准输出流(显示器输出流),Java的标准的数据流,注意:(1)System类不能创建对象,只能直接使用它的三个静态成员。(2)每当main方法被执行时,就自动生成上述三个对象。,System.err把错误信息送到缺省的显示,System.out:把输出送到缺省的显示(通常是显示器),Void print(参数)Void println(参数),System.in从标准输入获取输入(通常是键盘)int read()/返回ASCII码。若,返回值=-1,说明没有读取到任何字节读取工作结束。int read(byte b)/读入多个字节到缓冲区b中返回值是读入的字节数,import java.io.*;class TestKeyRead public static void main(String args)int b;try while(b=System.in.read()!=-1)System.out.print(char)b);catch(IOException e)System.out.println(e.toString();,标准输入流System.in.read(),byte buffer=new byte512;System.out.println(please Input:);int count=System.in.read(buffer);System.out.println(Output:);for(int i=0;icount;i+)(“+bufferi);System.out.println();for(int i=0;icount;i+)System.out.print(char)bufferi);String s=new String(buffer);System.out.println(s);System.out.println(count);,标准输入流System.in.read(byte b),程序输出:,(2)java.io包中的输入输出流的基类,输出流:将程序中的数据输出到外界(显示器、打印机、文件、网络)的通信通道。输出流的基本类:OutputStream,输入流:将数据从外界(键盘、文件、网络)读入到程序的通信通道.输入流的基类:InputStream,InputStream 及 其子类,InputStream,FileInputStream,PipedIntputStream,FilterInputStream,ByteArrayInputStream,DataInputStream,BufferedInputStream,LineNumberInputStream,SequencedInputStream,StringBufferInputStream,PushbackInputStream,抽象类 InputStream,InputStream类的常见方法:int read():读一个byte类型数,返回读入字节。若返 回值=-1,说明没有读取到任何字节读取工作结束 int read(byte b):读多个字节到数组b中 int read(byte b,int off,int len);从输入流中读取 len个字节放入数组b中,起始位置offavailable():返回输入流中可以读取的字节数 close():关闭流,OutputStream及其子类,OutputStream,FileOutputStream,PipeOutputStream,FilterOutputStream,ByteArrayOutputStream,DataOutputStream,BufferedOutputStream,PrintStream,抽象类OutputStream,OutputStream类的常见方法:void write(int b):将一个整数输出到流中void write(byte b):将数组中的数据输出到流中。void write(byte b,int off,int len):将数组b中从off指定的位置开始len长度的数据输出到流中close():关闭流.注意:上述各方法都有可能引起异常。,(3)基本输入输出流的子类 文件流,file1.txt,file2.txt,FileInputStream,FileOutputStream,通 信 通 道,内存,举例:利用程序,将文件file1.txt 拷贝到file2.txt中。注意:要捕获文件异常,内存,涉及到三个问题(1)怎样表示文件?文件类(2)怎样实现文件的输入?文件输入流(3)怎样实现文件的输出?文件输出流,文件类File类(io包)作用:File类主要用于命名文件、查询文件属性和处理文件目录。public class File extends Object implements Serializable,Comparable,构造函数File(String pathname)File(String parent,String child)File(File parent,String child),例:File f1=new File(FileTest1.txt);/创建文件对象f1,f1所指的文件是在当前目录下创建的FileTest1.txt 例:File f2=new File(“D:dir1,FileTest2.txt);/注意:D:dir1目录事先必须存在,否则异常 例:File f4=new File(dir3);File f5=new File(f4,FileTest5.txt);/在如果 dir3目录不存在使用f4.mkdir()先创建,public class FileTestExppublic static void main(String args)throws IOException File dir=new File(root);File f1=new File(dir,fileOne.txt);File f2=new File(dir,fileTwo.java);/文件对象创建后,指定的文件或目录不一定物理上存在 if(!dir.exists()dir.mkdir();if(!f1.exists()f1.createNewFile();if(!f2.exists()f2.createNewFile();,说明:File类的方法:(1)exists()测试磁盘中指定的文件或目录是否存在(2)mkdir()创建文件对象指定的目录(单层目录)(3)createNewFile()创建文件对象指定的文件,System.out.println(f1s AbsolutePath=+f1.getAbsolutePath();System.out.println(f1 Canread=+f1.canRead();System.out.println(f1s len=+f1.length();String FL;int count=0;FL=dir.list();for(int i=0;iFL.length;i+)count+;System.out.println(FLi+is in root);System.out.println(there are+count+file in/root);,说明:File类的方法:(4)list()返回目录中所有文件名字符串,返回,文件输入流:FileInputStream类,作用:以文件作为数据输入源的数据流。或者说是打开文件,从文件读数据到内存的类。,使用方法(1)File fin=new File(d:/abc.txt);FileInputStream in=new FileInputStream(fin);使用方法(2)FileInputStream in=new FileInputStream(“d:/abc.txt”);,输入源的文件名,程序举例:将InputFromFile.java的程序的内容显示在显示器上,显示器,标准输出流,try FileInputStream rf=new FileInputStream(InputFromFile.java);int n=512;byte buffer=new byten;while(rf.read(buffer,0,n)!=-1),返回,文件输出流:FileOutputStream类,d:/myjava/write.txt,FileOutputStream,内存,FileoutputStream类作用:用来处理以文件作为数据输出目的数据流;或者说是从内存区读数据入文件,使用方法(1)File f=new File(“d:/myjava/write.txt);FileOutputStream out=new FileOutputStream(f);使用方法(2)FileOutputStream out=new FileOutputStream(“d:/myjava/write.txt);,数据写入的文件名,程序举例:使用键盘输入一段文章,将文章保存在文件write.txt中,Write.txt,FileoutputStream,try System.out.println(please Input from Keyboard);int count,n=512;byte buffer=new byten;count=System.in.read(buffer);FileOutputStream wf=new FileOutputStream(d:/myjava/write.txt);wf.write(buffer,0,count);wf.close();/当流写操作结束时,调用close方法关闭流。System.out.println(Save to the write.txt);catch(IOException IOe)System.out.println(File Write Error!);,FileInputStream流和FileOutputStream的应用,例:利用程序将文件file1.txt 拷贝到file2.txt中。注意:要捕获文件异常,内存,程序设计:创建一个copy.java文件,并在该文件中实现将copy.java的内容拷贝到copy2.java中,class copy public static void main(String args)try File inFile=new File(“copy.java);File outFile=new File(“copy2.java);FileInputStream finS=new FileInputStream(inFile);FileOutputStream foutS=new FileOutputStream(outFile);int c;while(c=finS.read()!=-1)foutS.write(c);finS.close();foutS.close();catch(IOException e)System.err.println(FileStreamsTest:+e);,(4)基本输入输出流子类之二 缓冲输入输出流,文件,输入流,缓冲输入流,键盘,文件,显示器,输出流,缓冲输出流,目的:增加缓冲区流,减少访问硬盘的次数,提高效率,BufferedInputStream和 BufferedOutputStream,内存,将BufferedInputStream 与 FileInputStream 相接 FileInputStream in=new FileInputStream(“file1.txt”);BufferedInputStream bin=new BufferedInputStream(in);,文件,文件输入流,缓冲输入流,内存,内存,将BufferedOutputStream与 FileOutputStream相接FileOutputStream out=new FileOutputStream(“file1.txt”);BufferedOutputStream bin=new BufferedInputStream(out);,将BufferedReader与标准的数据流相接 InputStreamReader sin=new InputStreamReader(System.in)BufferedReader bin=new BufferedReader(sin);,键盘,键盘输入流,缓冲输入流,内存,public class ReadWriteToFile public static void main(String args)throwsIOExceptionInputStreamReader sin=new、InputStreamReader(System.in);BufferedReader bin=new BufferedReader(sin);FileWriter out=new FileWriter(myfile.txt);BufferedWriter bout=new BufferedWriter(out);String s;while(s=bin.readLine().length()0)bout.write(s,0,s.length();,bin.close();bout.close();,程序说明:从键盘读入字符,并写入到文件中BufferedReader类的方法:String readLine()作用:读一行字符串,以回车符为结束。BufferedWriter类的方法:bout.write(String s,offset,len)作用:从缓冲区将字符串s从offset开始,len长度的字符串写到某处。,InputStream和OutputStream类处理的是字节流,数据流中的最小单位是字节(8个bit)Reader与Writer处理的是字符流,在处理字符流时涉及了字符编码的转换问题,Unicode编码(java)GBK编码 UTF-8编码,public class EncodeTest private static void readBuff(byte buff)throws IOException ByteArrayInputStream in=new ByteArrayInputStream(buff);int data;while(data=in.read()!=-1)System.out.print(data+);System.out.println();in.close();public static void main(String args)throws IOException System.out.println(内存中采用unicode字符编码:);char c=好;int lowBit=c,内存中采用unicode字符编码:125 89本地操作系统默认字符编码:186 195 采用GBK字符编码:186 195 采用UTF-8字符编码:229 165 189,内存(使用Unicode字符编码的字符串),数据源/数据汇(使用本地操作系统的字符编码的字符串),Reader的read()方法,Writer的write()方法,Reader类能够将输入流中采用其他编码类型的字符转换为Unicode字符,然后在内存中为其分配内存Writer类能够将内存中的Unicode字符转换为其他编码类型的字符,再写到输出流中。,import java.io.*;public class test public static void main(String args)throws IOExceptionStringReader reader=new StringReader(好);FileOutputStream foutS=new FileOutputStream(a1.txt);BufferedOutputStream bout=new BufferedOutputStream(foutS);FileWriter Fout=new FileWriter(a2.txt);int data;while(data=reader.read()!=-1)bout.write(char)data);Fout.write(char)data);reader.close();bout.close();Fout.close();,(4)IOException异常类的子类,1.public class EOFException:非正常到达文件尾或输入流尾时,抛出这种类型的异常。2.public class FileNotFoundException:当文件找不到时,抛出的异常。3.public class InterruptedIOException:当I/O操作被中断时,抛出这种类型的异常。,(5)文件的随机读写,随机读写文件类RandomAcessFile类作用:实现文件的随机读写,即从文件的任意位置开始读或写.class RandomFile extends Object implements DataOutput,DataInput,构造函数:RandomAccessFile(String Filename,String mode)mode=“r”:只读方式Mode=“rw”:读写方式常见的方法:seek(long pos)作用:将文件指针移动至文件pos位置long getFilePointer()作用:返回当前的文件指针的位置 long length()作用:返回文件的长度,int read()作用:从文件中读一个byteString readLine()作用:从文件中读下一行String readUTF()作用:从文件中读一个字符串Double readDouble()作用:从文件中读一个Double型数,Void writeUTF()作用:向文件中写一个字符串(字符集是UTF-8)Void writeDouble()作用:向文件中写一个Double型数Void writeByte()作用:向文件中写一个byte型的数Void writeBytes(String s)作用:向文件中写一字符串,在文件中一字节串形式保存。,程序示例1:向文件的末尾添加一个字符串class testAccessFile public static void main(String args)tryRandomAccessFile rf1=new RandomAccessFile(testAccess.txt,rw);rf1.writeBytes(Linda);rf1.writeBytes(21);rf1.writeBytes(female);rf1.writeBytes(Computer Depart);rf1.seek(rf1.length();rf1.writeUTF(hello everyone);catch(Exception e)System.out.println(e.toString();,程序示例:将文件中的“xiu fang”改为“liu fang”class FileAccess public static void main(String args)tryRandomAccessFile rf1=new RandomAccessFile(testAccess.txt,rw);rf1.writeLong(11231);rf1.writeUTF(xiu fang);rf1.writeInt(21);rf1.writeChar(f);rf1.writeUTF(Computer Department);rf1.writeDouble(561.5);rf1.seek(10);rf1.writeBytes(liu);catch(Exception e)System.out.println(e.toString();,(6)对象流,定义:能够输入输出对象的流.(将对象在文件之间或网上进行传递),文件/网络,对象流,内存,文件/网络,对象流,ObjectInputStream ObjectOutputStream,文件输入流,文件输出流,对象序列化和对象流(1)为什么序列化?对象不能够直接进行输入输出(2)什么是序列化?对象通过写出描述自己状态的的数值来记录自己的过程.(3)两者什么关系?将序列化后的对象通过对象输入输出流写入文件或传送到网络其他位置.,1.只有实现serializable接口的类才能被串行化class Student implements Serializable int id;String name;int age;String department;public Student(int id,String name,int age,String department)this.id=id;this.name=name;this.age=age;this.department=department;,对象流举例:将Student类的一个实例写到文件中import java.io.*;public class Objectser public static void main(String args)Student stu=new Student(981036,Li Ming,16,CSD);try FileOutputStream fo=new FileOutputStream(date.ser);ObjectOutputStream so=new ObjectOutputStream(fo);so.writeObject(stu);so.close();catch(Exception e),对象流:从文件date.ser中读一个Student类的一个实例出来,Student stu=null;try FileInputStream fi=new FileInputStream(date.ser);ObjectInputStream si=new ObjectInputStream(fi);stu=(Student)si.readObject();si.close();catch(Exception e)System.out.println(e.toString();System.out.println(ID:+stu.id+name:+stu.name+age:+stu.age+dept.:+stu.department);,

    注意事项

    本文(Java第八章输入输出流.ppt)为本站会员(小飞机)主动上传,三一办公仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知三一办公(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    备案号:宁ICP备20000045号-2

    经营许可证:宁B2-20210002

    宁公网安备 64010402000987号

    三一办公
    收起
    展开