版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、第1,6章输入和输出流,2,6.1输入和输出基础,在Java语言中,输入和输出完全基于“流”概念。Java输入/输出的流接口为复杂而苛刻的I/O编程任务提供了简明的抽象。首先,流的概念Java程序通过流完成输入/输出。流通过Java的输入/输出系统连接到物理设备。输入流可以从磁盘档案、键盘或网络套接字中抽象出不同类型的输入。同样,可以将一个输出流输出到控制台、磁盘档案或连接的网络。其次,字节流和字符流在Java 2中定义两种茄子流类型:字节类和字符类。1.字节流字节流(byte stream)提供了一种轻松处理字节输入和输出的方法。可以使用字节流读取或写入二进制数据。3,字节流由两个类层次定义
2、。顶层有两个茄子抽象类:InputStream和OutputStream。牙齿两个抽象类定义实现不同流类的主要方法。最重要的两个茄子方法是read()和write(),前者分别读取和写入数据的字节。牙齿这两个方法在InputStream和OutputStream中定义为抽象方法,并从派生流类中重新加载。以下是几个茄子常用的特定字节流类:BufferedInputStream:缓冲区输入流BufferedOutputStream:缓冲区输出流FileInputStream:读取文件的输入流FileOutputStream:写入文件的输出流input Ream:描述流输出的抽象类Priam字符流字
3、符流(在charam字符流的顶层,有两个茄子抽象类:Reader和Writer)。牙齿两个抽象类定义实现不同流类的主要方法。两种最重要的茄子方法是read()和write()。牙齿方法分别读取和写入字符,并从派生的流类中重新加载。以下是一些茄子常见的特定字符流类:BufferedReader:缓冲区输入字符流BufferedWriter:缓冲区输出字符流FileReader:读取文件的输入流FileWriter:写入文件的输出流InputStreamReader:字节ader:计算行数的输入流output他们的定义如下:公共静态InputStream inPublic static Print
4、Stream outPublic static PrintStream err,6,6.2控制台输入/输出,1,控制台输入1。BufferedReader缓冲区输入字符流类Java 2中读取控制台输入的首选方法必须是字符流。这样,方案就可以轻松地遵守和维护国际标准。控制台输入通过从System.in中读取数据来完成。BufferedReader构造函数用作: buffered reader(reader input reader),如下所示:其中,inputreader是连接生成的bufferedreader实例的流。Reader是抽象类,InputStreamReader是Reader的特定
5、子类,它将字节转换为字符。InputStreamReader构造函数是: InputStreamReader(inputstream input stream)。inputstreamreader(system . in);下列程式码会建立连接至键盘的BufferedReader物件:bufferedreaderbr=new buffered reader(new input stream reader(system . in)2 . buffered reader方法int read()throws io eader遇到流的结束时返回-1。ReadLine()方法string ReadLin
6、e()throwsio exception牙齿方法从输入流中一次读取一行字符,然后将其返回到string。遇到流的结尾时返回null。,8,import Java . io . *;public classinput fispublic static void main(String args)buffered reader ss=new buffered reader(新输入streamreader(int a;float b;char c;try input=ss . readline();S=inputa=integer . parseint(input);b=float . parse
7、 float(input);c=(char)ss . read();所需类型转换,9,system . out . print ln(s);system . out . print ln(a):system . out . print ln(b):system . out . print ln(c);io exception e(catch)system . out . print ln(there are some wrong in I/o);注意:如果捕获了Exception异常类型,则如果输入数据不符合parse方法的参数要求,则将捕获异常。如果捕获的异常类型为IOException,并
8、且输入数据不符合parse方法的参数要求,则不会捕获异常,并会发生运行时错误。异常类型可以输入Exception,10,程序运行时从键盘输入3360 1234(如果输入非数字字符串,则出现执行错误)。wrh输出1234字符串1234整数数据1234.0实际数据W字符数据,11,3。每行输入多个数据项以上示例逐行读取文字。如果要在每个数据行中包含多个子数据项,Java提供了一个特殊类StringTokenizer,该类分解了包含分隔符的大型字符串。用法如下:string tokenizer ST=new string tokenizer(line, : ),其中字符串line的分隔符指定为 :
9、。您也可以指定多个分隔符号。如果未指定分隔符,则使用默认分隔符空格、制表符和回车符。string tokenizerst=newstring tokenizer(line)string tokenizer具有两种茄子方法:nextToken()返回以下标签,然后返回hasmore tokens();12,import Java . io . *;import Java . util . *;public classinput fispublic static void main(String args)buffered reader ss=new buffered reader(新输入stre
10、amreader(/临时容纳输入数据的临时字符串数组String field=new String4Int a,field count=0;float b;char c;13,try input=ss . readline();/读取单行string tokenizer ST=new string tokenizer(input,);while(ST . hasmore tokens()fieldfieldcount=ST . next token();FieldcountS=字段0;a=a=integer . parseint(field 1);b=b=float . parse float
11、(field 2);c=(char)ss . read();system . out . print ln(s):system . out . print ln(a):system . out . print ln(b):system . out . print ln(c);io exception e(catch)system . out . print ln(there are some wrong in I/o);14、2、控制台输出;Java使用System.out将数据写入字节流控制台;Java使用PrintWriter .PrintWriter提供了基于字符的写入,用于定义多个构造
12、函数。以下是常用的一种:print writer(output stream output stream,boolean flushOnNewline),其中flushOnNewline控制Java是否位于println()方法中否则,不会发生。15,import Java . io . *;class printwriter demo public static void main(string args)printwriter pw=new printwriter(system . out,true);String s=this is a testint I=-7;Float f=23.4
13、fpw . print ln(s);pw . print ln(I);pw . print ln(f);16,例如,在键盘上输入两个整数以求和。import Java . io . *;public class input demo public static void main(string args)buffered reader read=new buffered reader(new input stream reader)Int a、b、c;try a=integer . parseint(read . readline();b=integer . parseint(read . r
14、eadline();c=a b;pw . print ln(c=c);捕获(io exception e)pw . print ln(there are some errors);17,6.3文件的读写,1,常用类与文件的读写操作和标准输入输出非常相似。特别是,应仅使用用于档案操作的流,并在适当的时候关闭流。否则,将无法释放系统资源。处理文件时,输入流和输出流分别是FileReader和FileWriter。第二、示例1:创建档案,即从键盘输入数据,写入磁盘档案。18,import Java . io . *;import Java . util . *;class filew public
15、static voidmain(string args)person people=new person();String readint I;buffered reader input=new buffered reader(new input stream reader(system . in);try printwriter out=new printwriter(new filewriter(e :/Java/file/people . dat);19,for(I=0);i3;I)read=input . readline();P=readread=input .
16、readline();people . age=integer . parseint(read);read=input . readline();People.id=readout . print ln(people . name people . age people . id);out . close();catch(io exception e)system . out . print ln(error for create file);20,class person public String namePublic int age公共字符串id;21,示例2:从文件读取数据,import Java . io . *;import Java . util . *;class filer public static voidmain(string args)string read;try buffered reader input=new buffered reader
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 珍珠岩焙烧工岗前水平竞赛考核试卷含答案
- 玩具设计师岗位生产安全水平考核试卷含答案
- 网络货运员岗位理论能力考核试卷含答案
- 2025年执业医师考试验证题库试题及答案
- 2025年制冷与空调设备运行操作证考试题库及答案
- 2025年中国民族博物馆公开招聘笔试备考题库及参考答案详解1套
- 2025年中药管理法规试题及答案
- 2025年中小学教师招聘考试教育综合知识试题与答案
- 2025年注册安全工程师考试金属冶炼(初级)安全生产实务试题及解答及答案
- 2025年注册消防工程师考试真题及答案
- 2026新教材语文 7 培养德智体美劳全面发展的社会主义建设者和接班人 课件
- JJF 1069-2026法定计量检定机构考核规范
- 2026广播电视播音员主持人考试题库及答案
- 2026-2027学年高三第一次联考(月考)试卷地理+答案
- T/CI 874-2025红树林精准生态修复与成效评估技术规程
- 冷库工程监理实施细则
- (零模)南京市2027届高三年级学情调研地理试卷(含答案)
- CSCO肾癌诊疗指南2026
- 《中华人民共和国生态环境法典》测试题(含参考答案)
- 【新教材】2026年秋人教版(PEP)五年级上册英语全册教案(含教学计划)
- 2026年上海事业编全套真题及答案解析
评论
0/150
提交评论