欢迎来到淘文阁 - 分享文档赚钱的网站! | 帮助中心 好文档才是您的得力助手!
淘文阁 - 分享文档赚钱的网站
全部分类
  • 研究报告>
  • 管理文献>
  • 标准材料>
  • 技术资料>
  • 教育专区>
  • 应用文书>
  • 生活休闲>
  • 考试试题>
  • pptx模板>
  • 工商注册>
  • 期刊短文>
  • 图片设计>
  • ImageVerifierCode 换一换

    输入输出流 学习.pptx

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

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

    输入输出流 学习.pptx

    9.1 I/O基本原理(二)3 3、JAVAJAVA中流的概念?(必须理解)一种抽象的数据类型;拥有长度(元素的个数);流所处的当前位置(任意时刻的唯一存取点)流的存取方式(只读、只写或读写)。第1页/共39页9.2 文件及文件I/O思考:如何用Java实现新建文件夹及重命名等功能?利用java.io.File类9.2.1 File类(重点内容)File类提供独立于平台的文件处理方法。File类的构造函数:(熟练掌握)public File(Sting path);public File(Sting path,String name);public File(File dir,String name);第2页/共39页File类主要方法1 1判断文件路径和属性 getPath()方法返回File对象的路径。getAbsolutePath()方法返回File对象的绝对路径。getName()方法返回File对象的文件名或目录名。注意:getPath()和getName()之间的区别getPath()返回路径名,即创建File对象时所用参数。getName()返回具体的目录或者文件名。若参数中不包含路径分隔符,则两者返回相同的字符串。第3页/共39页File类判断文件属性或状态的方法(了解即可)exist(),canWrite(),canRead(),isFile(),isDirectory(),isAbsolute()Java不能查询隐藏、系统、归档等属性。Why?第4页/共39页File类主要方法2创建目录和删除文件 mkdir()和mkdirs()/创建目录delete()/删除文件或目录,删除目录时,应该保证所删目录是一个空目录,否则删除操作失败。3文件更名 renameTo()方法不但可以给文件更名,而且可以给目录更名。equals()判断两个File对象是否相等,程序用它来判断用户给定的原文件名和新文件名是否相等,如果相等则不能进行更名操作。第5页/共39页File类主要方法4目录清单 list()方法产生目录清单,它只返回指定目录中包含的文件名或子目录名,没有文件长度、修改时间、文件属性等信息。lastModified()返回文件最后一次被修改的时间,其值是相对于1970年1月1日的时间毫秒数,为了便于阅读,必须变成java.util.Date对象。说明:File类不允许访问文件内容,即读写文件;也不能改变文件的属性。第6页/共39页File类示例import java.io.*;public class FileOperation public static void main(String args)try BufferedReader in=new BufferedReader(new InputStreamReader(System.in);String sdir=d:temp;String sfile;File Fdir1=new File(sdir);if(Fdir1.exists()&Fdir1.isDirectory()System.out.println(“目录”+sdir+“已经存在。);for(int i=0;i Fdir1.list().length;i+)System.out.println(Fdir1.list()i);File Fdir2=new File(d:temp,temp1);if(!Fdir2.exists()Fdir2.mkdir();第7页/共39页System.out.println();System.out.println(“创建新目录后的文件列表:);for(int i=0;i Fdir1.list().length;i+)System.out.println(Fdir1.list()i);System.out.println(“请输入文件名:);sfile=in.readLine();File Ffile=new File(Fdir1,sfile);if(Ffile.isFile()System.out.println(“文件”+Ffile.getName()+“的长度是”+Ffile.length()+“字节。);catch(Exception e)System.out.println(e.toString();第8页/共39页9.2.2 RandomAccessFile类1 1、构造函数(熟练掌握)public RandomAccessFile(String name,String mode)throws IOException;public RandomAccessFile(File file,String mode)throws IOException;mode-mode-读写模式:rr表示文件以只读方式打开,rwrw表示文件以读写方式打开。第9页/共39页RandomAccessFile类 注意:以读写方式生成RandomAccessFile对象时如果该文件不存在,则创建该文件;如果该文件已经存在,则以覆盖方式把输出数据写入到文件中;原文件中没有被覆盖的部分,仍然保留在文件之中。第10页/共39页RandomAccessFile类RadomAccessFile类实现了DataInput和DataOutput两个接口,这两个接口分别定义了读入和写出的方法。DataInput接口独有的方法:skipBytes()在输入流中跳过n个字节 readUnsignedByte()读入一个无符号字节数据 readLine()读入一行字符。有四种行结束符:回车符r,新行符n,回车符后紧跟新行符,或者文件结束。读入的一行字符中包含行结束符。第11页/共39页RandomAccessFile常见写入方法write+write+不同的后缀:分别为Byte,Short,Int,Long,Byte,Short,Int,Long,Float,Double,Char,BooleanFloat,Double,Char,Boolean。对于用这些方法写出的数据,应该用带有相同后缀的读入方法来读取数据,否则可能出错。特例:writeBoolean()writeBoolean()方法,写出数据时用0 0表示falsefalse,用1 1表示true;true;用readBoolean()readBoolean()读入数据时,如果是0 0,则返回falsefalse,非0 0返回truetrue。第12页/共39页字符串写入文件(了解)三种方法与字符串的写出有关:1.1.writeBytes()writeBytes():每个字符占一个字节。2.2.writeChars()writeChars():每个字符占2 2个字节,即1616位。3.3.writeUTF()writeUTF():以8 8位编码的方式写出字符串。前两个字节,表示以后将要写出数据的字节总数。例如:writeUTF(abc)writeUTF(abc),则其结果用十六进制表示为:00h,03h,61h,62h,63h00h,03h,61h,62h,63h。第13页/共39页不带后缀的写入方法三个不带任何后缀的写入方法,按字节写数据。write(int b);write(int b);write(byte b);write(byte b);write(byte b,int off,int len);write(byte b,int off,int len);其参数的含义为:b b 一个字节数据或字节数组。off off 表示从数组中第几个字节开始写出数据。len len 表示写出字节的总数。第14页/共39页RandomAccessFile示例import java.io.*;public class TextFileLineNo public static void main(String args)throws IOException RandomAccessFile f=new RandomAccessFile(TextFileLineNo.java,r);long lineNo=0,filePointer=0,length=f.length();while(filePointer=9)System.out.print(+lineNo+:);System.out.println(str);else System.out.print(+lineNo+:);System.out.println(str);filePointer=f.getFilePointer();第15页/共39页9.3 字节流主要目标:了解:InputStream,OutputStream,Reader,Writer基本功能其中InputStream,OutputStream是字节流。Reader,Writer是字符流。重点:掌握文件输入输出流类FileInputStream,FileOutputStream,以及过滤器流类,Buffered、Data第16页/共39页结构图(了解)ObjectRandomAccessFileInputStreamWriterOutputStreamFileReaderFileOutputStreamFilterOutputStreamPipeOutputStreamFileInputStreamFilterInputStreamPipeInputStreamSequenceInputStream第17页/共39页字节流(了解)第18页/共39页文件输入输出流类1FileInputStream类 它有三个构造函数:(前两种需熟练掌握)public FileInputStream(File file);public FileInputStream(File file);public FileInputStream(String name);public FileInputStream(String name);public FileInputStream(FileDescriptor fdObj);public FileInputStream(FileDescriptor fdObj);第19页/共39页FileInputStreamFileInputStream主要读入方法FileInputStreamFileInputStream类覆盖了InputStreamInputStream类的read()read()方法,它们都是按字节读入数据:public int read()throws IOException;public int read(byte b)throws IOException;public int read(byte b,int off,int len)throws IOException;第20页/共39页FileInputStreamFileInputStream示例:显示文件import java.io.*;class FileType public static void main(String args)if(args.length!=1)System.err.println(Use:java FileType);System.exit(-1);File file=new File(args0);try FileInputStream in=new FileInputStream(file);int c;int i=0;while(c=in.read()-1)if(char)c=n)i+;第21页/共39页FileInputStreamFileInputStream示例:显示文件 System.out.print(char)c);in.close();System.out.flush();System.out.println(nnn-);System.out.println(File +args0+Lines:+i);catch(FileNotFoundException e)System.err.println(file+is not found);catch(IOException e)e.printStackTrace();第22页/共39页FileOutputStream类构造函数 public FileOutputStream(String name)throws IOException;public FileOutputStream(String name,boolean append)throws IOException;public FileOutputStream(File file)throws IOException;注意:生成FileOutputStream对象时,如果文件不存在,则有完全改写和附加两种输出数据的方式:除第二种构造函数,其余均是改写。第二个构造函数中,appendappend参数为truetrue表示附加方式,falsefalse表示改写方式。第23页/共39页过滤器流类(了解内容)FilterInputStream类的子类BufferedInputStream类DataInputStream类FilterOutputStream类的子类BufferedOutputStream类DataOutputStream类第24页/共39页BufferedInputStream构造函数public BufferedInputStream(InputStream in);public BufferedInputStream(InputStream in,int size);第25页/共39页9.4字符流:Reader和WriterInputStream类和OutputStream类及其子类,读写流内数据时以字节为单位。Reader类和Writer类及其子类,读写流内数据时以字符为单位。两种流类中定义的方法的种类和参数大致相同。例如:public int read(byte b,int off,int len);public int read(char b,int off,int len);第26页/共39页字符流第27页/共39页FileReader示例import java.io.*;class TestNodeStream public static void main(String args)throws IOException String s;BufferedReader in;in=new BufferedReader(new FileReader(TestNodeStream.java);while(s=in.readLine()!=null)System.out.println(s);第28页/共39页BufferedReader示例import java.io.*;public class ConvertStream public static void main(String args)throws IOException String s;BufferedReader in=new BufferedReader(new InputStreamReader(System.in);while(s=in.readLine()!=null)System.out.println(Read:+s);第29页/共39页9.5 管道输入输出流1、什么是管道?始于UNIX提供线程间(ITC)或者进程间(IPC)的通信方法2、JAVA中的管理技术实现用PipedInputStream类和PipedOutputStream类实现。两者必须同时使用。第30页/共39页管道连接步骤(掌握)有两种方法方法一(使用不带参数的构造器):建立输入流PipedInputStream pipedinputstream=new PipedInputStream();建立输出流PipedOutputStream pipedoutputstream=new PipedOutputStream();将输入输出连接起来pipedinputstream.connect(pipedoutputstream);或者pipedoutputstream.connect(pipedinputstream);第31页/共39页管道连接步骤(掌握)方法二(使用带参数的构造器):直接建立连接PipedInputStream pis=new PipedInputStream();PipedOutputStream pos=new PipedOutputStream(pis);或PipedOutputStream pos=new PipedOutputStream();PipedInputStream pis=new PipedInputStream(pos);第32页/共39页9.6 对象串行化对象串行化的主要步骤:1、定义可以用流处理的类implements Serializable例:import java.io.*;class MySer implements Serializable int x,y;String s;public MySer(int a,int b,String str)x=a;y=b;s=str;public String toString()return (+x+,+y+,+s+);第33页/共39页9.6 对象串行化2、创建节点输入输出流FileInputStream fi=new FileInputStream(first.dat);FileOutputStream fo=new FileOutputStream(second.dat);第34页/共39页9.6 对象串行化3、创建对象处理流ObjectInputStream和ObjectOutputStreamObjectInputStream ois=new ObjectInputStream(fi);ObjectOutputStream oos=new ObjectOutputStream(fo);第35页/共39页9.6 对象串行化4、从流中读写对象mySer obj1=new mySer(0,0,Hello);oos.writeObject(obj1);mm obj2=(mySer)ois.readObject();第36页/共39页9.6 对象串行化示例(写入对象)class TestMySerWrite public static void main(String args)throws IOException MySer obj=new MySer(0,0,Hello);FileOutputStream fo=new FileOutputStream(my.dat);ObjectOutputStream oos=new ObjectOutputStream(fo);oos.writeObject(obj);第37页/共39页9.6 对象串行化示例(读出对象)class TestMySerRead public static void main(String args)throws IOException,ClassNotFoundException FileInputStream fi=new FileInputStream(my.dat);ObjectInputStream ois=new ObjectInputStream(fi);MySer obj=(MySer)ois.readObject();System.out.println(obj.x=+obj.x);System.out.println(obj.y=+obj.y);System.out.println(obj.s=+obj.s);第38页/共39页感谢您的观看!第39页/共39页

    注意事项

    本文(输入输出流 学习.pptx)为本站会员(莉***)主动上传,淘文阁 - 分享文档赚钱的网站仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知淘文阁 - 分享文档赚钱的网站(点击联系客服),我们立即给予删除!

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




    关于淘文阁 - 版权申诉 - 用户使用规则 - 积分规则 - 联系我们

    本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

    工信部备案号:黑ICP备15003705号 © 2020-2023 www.taowenge.com 淘文阁 

    收起
    展开