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

    JavaPPT第六章输入输出流.ppt

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

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

    JavaPPT第六章输入输出流.ppt

    1,第六章输入输出流,2,6.1 输入输出基础,在Java语言中,输入与输出完全基于“流”这个概念。Java输入输出的流式接口为复杂而繁重的I/O编程任务提供了一个简洁的抽象。,一、流的概念 Java程序通过流来完成输入/输出。流通过Java的输入/输出系统与物理设备链接。输入流能够抽象多种不同类型的输入:从磁盘文件、从键盘或从网络套接字。同样,一个输出流可以输出到控制台,磁盘文件或相连的网络。二、字节流和字符流 在Java 2中,定义了两种类型的流:字节类和字符类。1.字节流 字节流(byte stream)为处理字节的输入和输出提供了方便的方法。可以使用字节流读取或书写二进制数据。,3,字节流由两个类层次结构定义。在顶层有两个抽象类:InputStream和OutputStream。这两个抽象类定义了实现其他流类的关键方法。最重要的两种方法是read()和write(),它们分别对数据的字节进行读写,这两种方法在InputStream和OutputStream中被定义为抽象方法,它们都被派生的流类重载。下面是几个常用的具体的字节流类:BufferedInputStream:缓冲输入流 BufferedOutputStream:缓冲输出流 FileInputStream:读取文件的输入流 FileOutputStream:写文件的输出流 InputStream:描述流输入的抽象类 OutputStream:描述流输出的抽象类 PrintStream:包含print()和println()的输出流 RandomAccessFile:支持随机文件输入/输出,4,2.字符流 字符流(character stream)为字符的输入和输出处理提供了方便。字符流的顶层有两个抽象类:Reader和Writer。这两个抽象类定义了实现其他流类的关键方法。最重要的两种方法是read()和write(),它们分别进行字符的读写,都被派生的流类重载。下面是几个常用的具体的字符流类:BufferedReader:缓冲输入字符流 BufferedWriter:缓冲输出字符流 FileReader:读取文件的输入流 FileWriter:写文件的输出流 InputStreamReader:把字节转换成字符的输入流 LineNumberReader:计算行数的输入流 OutputStreamWriter:把字符转换成字节的输出流 PrintWriter:包含print()和println()的输出流 Reader:描述字符流输入的抽象类 Writer:描述字符流输出的抽象类,5,三、预定义流 所有的Java程序运行时自动导入java.lang包,这个包定义了一个名为System的类,该类封装了运行时环境的多个方面。System还包含有3个预定义的字节流变量in、out和err。他们的定义如下:public static InputStream in;public static PrintStream out;public static PrintStream err;,6,6.2 控制台输入输出,一、控制台输入1.BufferedReader缓冲输入字符流类 在Java 2中,读取控制台输入的首选方法应该是字符流,它使程序容易符合国际标准,并且易于维护。控制台输入由从System.in读取数据来完成。BufferedReader的构造函数用法如下:BufferedReader(Reader inputReader)其中,inputReader是链接被创建的BufferedReader实例的流。Reader是一个抽象的类,InputStreamReader是Reader的一个具体子类,该子类将字节转换成字符。InputStreamReader的构造函数为:InputStreamReader(InputStream inputStream)可以这样使用:InputStreamReader(System.in),7,综上所述,下面的代码创建了与键盘相连的BufferedReader对象:BufferedReader br=new BufferedReader(new InputStreamReader(System.in)2.BufferedReader中重载方法read()和readLine()read()方法int read()throws IOException 该方法每次执行都从输入流中读取一个字符,然后以整型形式返回。当遇到流的尾时,返回-1。readLine()方法String readLine()throws IOException该方法每次执行从输入流中读取一行字符,然后以String形式返回。当遇到流的尾时,返回null。,8,import java.io.*;public class inputFIS public static void main(String args)BufferedReader ss=new BufferedReader(new InputStreamReader(System.in);String s,input;int a;float b;char c;try input=ss.readLine();s=input;a=Integer.parseInt(input);b=Float.parseFloat(input);c=(char)ss.read();,必须进行强制类型转换,9,System.out.println(s);System.out.println(a);System.out.println(b);System.out.println(c);catch(IOException e)System.out.println(there are some wrong in I/O);,注:捕获的异常类型是Exception时,若输入数据不符合parse方法的参数要求,该异常会被捕获到。捕获的异常类型是IOException时,若输入的数据不符合parse方法的参数要求,该异常不会被捕获到,出现运行时错误。,异常类型可以是Exception,10,程序运行时,从键盘输入:1234(若输入非数字串则有运行错误)wrh输出 1234 字符串 1234 整型数据 1234.0 实型数据 w 字符型数据,11,3.每行输入多个数据项 上面的例子采用逐行读取字符的方法,然后把每行数据作为输入赋给一个变量。如果希望每行数据包含多个子数据项,Java提供了专门的类StringTokenizer来分解一个包含分隔符号的大的字符串。用法如下:StringTokenizer st=new StringTokenizer(line,“:”)这里的字符串line的分隔符指定为“:”。也可指定多个分隔符,如果未指定分隔符,则使用缺省分隔符,即“空格”,“TAB”,”回车”。StringTokenizer st=new StringTokenizer(line)StringTokenizer有两个方法,nextToken()返回下一个标记,hasMoreTokens()返回后面是否还有标记。,12,import java.io.*;import java.util.*;public class inputFIS public static void main(String args)BufferedReader ss=new BufferedReader(new InputStreamReader(System.in);String s,input;/暂时容纳输入数据的临时字符串数组 String field=new String4;int a,fieldcount=0;float b;char c;,13,try input=ss.readLine();/读取一行 StringTokenizer st=new StringTokenizer(input,:);while(st.hasMoreTokens()fieldfieldcount=st.nextToken();fieldcount+;s=field0;a=Integer.parseInt(field1);b=Float.parseFloat(field2);c=(char)ss.read();System.out.println(s);System.out.println(a);System.out.println(b);System.out.println(c);catch(IOException e)System.out.println(there are some wrong in I/O);,14,二、控制台输出,Java使用System.out向控制台写数据,这种写数据方式是字节流的方式,另外,Java还提供基于字符的写操作,这个类是PrintWriter.PrintWriter定义了多个构造函数,下面是常用的一个:PrintWriter(OutputStream outputStream,Boolean flushOnNewline)其中,flushOnNewline控制Java是否在println()方法被调用时刷新输出流。如果flushOnNewline为true,刷新自动发生,否则,则不发生。,15,import java.io.*;class PrintWriterDemopublic static void main(String args)PrintWriter pw=new PrintWriter(System.out,true);String s=this is a test;int i=-7;float f=23.4f;pw.println(s);pw.println(i);pw.println(f);,16,例:从键盘上输入任意两个整数,求它们的和。,import java.io.*;public class InputDemo public static void main(String args)BufferedReader read=new BufferedReader(new InputStreamReader(System.in);PrintWriter pw=new PrintWriter(System.out,true);int a,b,c;try a=Integer.parseInt(read.readLine();b=Integer.parseInt(read.readLine();c=a+b;pw.println(c=+c);catch(IOException e)pw.println(there are some errors);,17,6.3 文件的读写,一、常用的类对文件的读写操作和标准输入输出是十分类似的,需要注意的是要采用专门对文件操作的流,并应在合适的时候关闭流,否则系统资源无法得到释放。对文件操作时,其输入输出流分别是FileReader和FileWriter。二、举例 例1:创建文件,即从键盘上输入数据,写入磁盘文件。,18,import java.io.*;import java.util.*;class FileW public static void main(String args)person people=new person();String read;int i;BufferedReader input=new BufferedReader(new InputStreamReader(System.in);try PrintWriter out=new PrintWriter(new FileWriter(e:/java/file/people.dat);,19,for(i=0;i3;i+)read=input.readLine();people.name=read;read=input.readLine();people.age=Integer.parseInt(read);read=input.readLine();people.id=read;out.println(people.name+people.age+people.id);out.close();catch(IOException e)System.out.println(Error for create File);,20,class person public String name;public int age;public String id;,21,例2:从文件中读出数据,import java.io.*;import java.util.*;class FileR public static void main(String args)String read;try BufferedReader input=new BufferedReader(new FileReader(e:/java/file/people.dat);read=input.readLine();while(!read.equals(null)System.out.println(read);read=input.readLine();input.close();,22,catch(IOException e)System.out.println(the file is not found);catch(NullPointerException e)return;,23,6.4 File类,File类直接处理文件和文件系统,它描述了文件本身的属性,例如:权限、时间、日期和目录路径。File类有三个构造函数。如下:File(String directoryPath);File(String directoryPath,String filename);File(File dirobj,String filename);,24,import java.io.File;class FileDemo static void p(String s)System.out.println(s);public static void main(String args)File f1=new File(e:/java/file/people.dat);p(File Name:+f1.getName();p(Path:+f1.getPath();p(abc Path:+f1.getAbsolutePath();p(Parent:+f1.getParent();p(f1.canWrite()?is writeable:is not writeable);p(f1.canRead()?is readable:is not readable);p(file last modified:+f1.lastModified();p(File size:+f1.length()+Bytes);,25,输出结果如下:,

    注意事项

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

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




    备案号:宁ICP备20000045号-2

    经营许可证:宁B2-20210002

    宁公网安备 64010402000987号

    三一办公
    收起
    展开