下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、JavaJava 流(Stream)、文件(File)和 IOjava.io 几乎包含了所有操作输入、输岀需要的类。所有这些流类代表了输入和输岀的目标支持很多格式,比如:比如基本类型,对象,本地化字符等一个流可以理解为一个数据的序列。输入流表示从一个源读取数据,输岀流表示想爱你给一个目标写数据。读取控制台输入1. 控制台的输入由System.in完成、为了获得一个绑定到控制台的字符流,可以把 System.in包装在一个BUfferedReader的对象中来创建一个字符流BufferedReader br = new BufferedReader(newInputStreamReader(Sy
2、stem.in);BufferedReader对象创建后,我们便可以使用read()方法从控制台读取一个字符,或者用readLine()方法读取一个字符串。2. 从控制台读取多字符输入:从BufferedReader对象读取一个字符要使用read()方法,它的语法如下:从BufferedReader对象读取一个字符要使用read()方法,它的语法如下:每次调用read()方法,它从输入流读取一个字符并把该字符作为整数值返回。当流结束的时候返回-1。该方法抛出IOException 。import java.io.*;public class BRRead public static void
3、main(String args) throws IOExceptionchar c;/ 使用 System.in 创建 BufferedReaderBufferedReader br = new BufferedReader(newInputStreamReader(System.in);System.out.println("Enter characters, 'q' to quit.");/读取字符do c = (char) br.read();System.out.println(c); while(c != 'q');Enter c
4、haracters, 'q' to quit.123abcq123abcq从控制台读取字符串从标准输入读取一个字符串需要使用BufferedReader的readLine()方法。它的一般格式是:String readLine( ) throws IOException例:/ 使用 BufferedReader 在控制台读取字符 import java.io.*;public class BRReadLines public static void main(String args) throws IOException/ 使用 System.in 创建 BufferedRea
5、derBufferedReader br = new BufferedReader(newInputStreamReader(System.in);String str;System.out.println("Enter lines of text.");System.out.println("Enter 'end' to quit.");do str = br.readLine();System.out.println(str); while(!str.equals("end"); 结果: Enter lines o
6、f text.Enter 'end' to quit. This is line one This is line one This is line two This is line twoEndEnd 控制台的输出: 由 print(), 和 println() 完成,这些方法都由 PrintStream 定义, System.out 是该类对象的一个引用 PrintStream 继承了 OutputStream 类,并且实现了方法 write(). 这样, write() 也可以用控制台写操作 PrintStream 定义 write() 的最简单格式如下所示:void w
7、rite(int byteval)该方法将 byteval 的低八位字节写到流中。该流用于从文件读取数据,它的对象可以用关键字new 来创建。有多种构造方法可用来创建对象。可以使用字符串类型的文件名来创建一个输入流对象来读取文件:InputStream f = new ("C:/java/hello"); 也可以使用一个文件对象来创建一个输入流对象来读取文件。我们首先得使用 File() 方法来创建一个文件 对象:File f = new File("C:/java/hello");InputStream f = new (f);该类用来创建一个文件并向
8、文件中写数据。 如果该流在打开文件进行输出前,目标文件不存在,那么该流会创建该文件。有两个构造方法可以用来创建 对象。 使用字符串类型的文件名来创建一个输出流对象:OutputStream f = new ("C:/java/hello")也可以使用一个文件对象来创建一个输出流来写文件。我们首先得使用 File() 方法来创建一个文件对象: File f = new File("C:/java/hello");OutputStream f = new (f);文件和 I/O还有一些关于文件和 I/O 的类,我们也需要知道:(类)Class( 类 )Cla
9、ss( 类 )Java 中的目录创建目录:File 类中有两个方法可以用来创建文件夹:mkdir( ) 方法创建一个文件夹,成功则返回 true ,失败则返回 false 。失败表明 File 对象指定的路径已经存在,或者由于整个路径还不存在,该文件夹不能被 创建。mkdirs() 方法创建一个文件夹和它的所有父文件夹。下面的例子创建 "/tmp/user/java/bin" 文件夹:import java.io.File;public class CreateDir public static void main(String args) String dirname =
10、 "/tmp/user/java/bin"File d = new );/ 现在创建目录d.mkdirs();编译并执行上面代码来创建目录 "/tmp/user/java/bin" 。注意:Java在UNIX和Windows自动按约定分辨文件路径分隔符。如果你在Windows版本的Java中使用分隔符(/) ,路径依然能够被正确解析。读取目录一个目录其实就是一个 File 对象,它包含其他文件和文件夹。如果创建一个 File 对象并且它是一个目录,那么调用 isDirectory( ) 方法会返回 true 。 可以通过调用该对象上的 list() 方法
11、,来提取它包含的文件和文件夹的列表。下面展示的例子说明如何使用 list() 方法来检查一个文件夹中包含的内容:import java.io.File;public class DirList public static void main(String args) String dirname = "/tmp"= new );if (f1.isDirectory() System.out.println( "Directory of " + dirname);String s = f1.list();for (int i=0; i < s.len
12、gth; i+) File f = new + "/" + si);if (f.isDirectory() System.out.println(si + " is a directory"); else System.out.println(si + " is a file"); else System.out.println(dirname + " is not a directory"); 以上实例编译运行结果如下:Directory of /tmp bin is a directory lib is a d
13、irectory demo is a directory test.txt is a fileREADME is a file index.html is a file include is a directoryjava 方法System.out.println();Println() 是一个方法 (Method)System 使系统类 (class)out 是标准输出对象 (Object)方法的定义: 方法是解决一类问题的步骤的有序组合,包含于类和对象之中,在程序中被创建,在其他方面被引用 优点:使程序变得简短而又清晰,有利于程序的维护。可以提高程序开发的重要性命名规则:必须以字母,下划线
14、或 $开头,可以包括数字,但不能以数字开头方法的定义修饰符 返回值类型 方法名 ( 参数类型 参数名 )方法体return返回值 ;? 修饰符: 修饰符,这是可选的,告诉编译器如何调用该方法。定义了该方法的访问类型。? 返回值类型 :方法可能会返回值。 returnValueType 是方法返回值的数据类型。有些方法执行所 需的操作,但没有返回值。在这种情况下, returnValueType 是关键字 void 。? 方法名: 是方法的实际名称。方法名和参数表共同构成方法签名。? 参数类型: 参数像是一个占位符。当方法被调用时,传递值给参数。这个值被称为实参或变量。 参数列表是指方法的参数类
15、型、顺序和参数的个数。参数是可选的,方法可以不包含任何参数。publicmiiMjifier uturn wiltK h ;K-ramekinzAT冉-亠4pLi皆lutintntmlT int一L_nun2) 4JmeEhodint result;Jif Cnunil > nuin2)result = numl;= num?;.return讪卿return 靶5ii11;11-:; m.-ttMilstatic int age(intbirthday).? 方法体:方 法体包含具体的语 句,定义该方法的功 能。static float interestfloat principal,
16、int year).方法调用Java支持两种调用方法的方式,根据方法是否返回值来选择。当程序调用一个方法时,程序的控制权交给了被调用的方法。当被调用方法的返回语句执行或者到达方法体闭括号时候交还控制权给程序。当方法返回一个值的时候,方法调用通常被当做一个值。例如:int larger = max(30, 40);如果方法返回值是 void,方法调用一定是一条语句。例如,方法println 返回void。下面的调用是个语句:System.out.println("Welcome to Java!");void 关键字本节说明如何声明和调用一个void方法。下面的例子声明了一个
17、名为printGrade的方法,并且调用它来打印给定的分数。示例Public class TestVoidMEthod()Public static void main(String args)printGrade(78.5);Public static void printScore(double score)lf(score>=90.0)System.out.println(A);else if(score>=80)System.out.println(B);通过值传递参数调用一个方法时候需要提供参数,你必须按照参数列表指定的顺序提供。Public static void np
18、rintln(String message, int n)For(int i=0;i<n;i+)System.out.println(message);示例下面的例子演示按值传递的效果。该程序创建一个方法,该方法用于交换两个变量。Public class TeatPassByValuePublic static void main(String args)Int num1;Int num2;/调用方法S);Sytem.out.println();Public static void s i,int j)Int a=0;I=num1;Num 仁 num2;Num2=i;Pubilc sta
19、tic double s i,double j)double a=0;I=num1;Num 仁 num2;Num2=i;方法的重载:(上述的红色标记的两个方法)一个类的两个方法拥有相同的名字,但有不同的参数列表; 编译器根据方法判断哪个方法应该被调用;变量的作用域:(程序中可以被引用的部分)局部变量:方法内定义的变量,其作用范围从声明开始到包含它的块结束; 必须声明才可以使用,例如:for循环的初始化部分声明的变量,其作用范围在整个循环。命令行参数的使用:运行程序时在传递命令参数给main()函数实现构造方法:当一个对象被创建的时候,构造方法来初始化该对象。方法和它所在的类的名字相同,但构造
20、方法没有返回值。通常会使用构造方法给一个类的实例变量赋值,或执行它必要的步骤来创建一个完整的 对象。可变参数:将同类型的可变参数传给一个方法声明:typeName. parameterName在声明中只能定义一个可变参数,它必须是方法的最后一个参数public static void printMax( double. numbers) if (numbers .l ength = 0) System.out.println("No argument passed");return;Java ScannerScanner 的基本语法:Scanner s = new Scan
21、ner(System.in);并通过 Scanner 类的 next() 与 nextLine() 方法获取输入的字符串 在读取前我们一般需要 使用 hasNext 与 haxNextLine 判断是否还有输入的数据: next() 与 nextLine() 区别next():1 、一定要读取到有效字符后才可以结束输入。2 、对输入有效字符之前遇到的空白, next() 方法会自动将其去掉。 3、只有输入有效字符后才将其后面输入的空白作为分隔符或者结束符。next() 不能得到带有空格的字符串。nextLine() :1 、以 Enter 为结束符 , 也就是说 nextLine() 方法返回
22、的是输入回车之前的所有字符。 2、可以获得空白。Java 异常处理 常见的一异常原因: 1 用户输入了非法的数据 2 要打开的文件不存在 3网络通信连接中断,或者JVM内存溢出由用户引起的错误:1 检查性异常:最具代表的检查性异常是用户错误或问题引起的,这是程序员无法预见的2 运行时异常:运行异常是可以被程序员避免的错误3 错误:错误不是异常,而是脱离程序员控制的问题捕获异常:使用 try 和 catch 代码中 Exception 类的层次:Exception 类是 Throwable 类的子类;还有 error ,用来表示运行时环境发生的错误 Java 内置异常类:异常方法: Throwable 捕获异常:使用 try 和 catch 关键字捕获异常,使用的语法 : try/ 程序代码 catch(ExceptionName e1) /Catch 块 多重捕获块: 一个 try 代码块后面跟随多个 catch 代码块的情况就叫多重捕获。多重捕获块的语法如下所示:try/程序代码catch(异常类型1异常的变量名1)/程序代码catch(异常类型2异常的变量名2)/程序代码catch(异常类型2异常的变量名2)/程序代码 上面的代码段包含了 3 个 ca
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 农业种植项目管理岗位职责及考核体系
- 汽车4S店销售与售后服务规范
- 2025年安全培训试卷及答案:矿井提升运输系统操作员换证复审安全知识应用考核
- 危险化学品智慧监管系统操作流程
- 建筑工程环境保护措施及案例分析
- 2025年安全培训试卷及答案:井下作业人员安全知识竞赛
- 2024职业健康培训计划与课程设计
- 2025年煤矿矿山救护管理员换证复审安全培训试卷及答案
- 2025年矿井应急演练评估成果深化评估安全培训试卷及答案
- 2025年煤矿安全生产教育培训考核反馈效果总结效果效果试卷及答案
- 电子商务说课公开课一等奖市优质课赛课获奖课件
- 武汉城市简介PPT
- 认识厘米这样教强震球
- 口腔颌面颈部解剖课件
- 妇产科名词解释填空简答
- 私募证券投资基金调查问卷(自然人版)
- 浙江省教育科学规划课题活评审表
- LY/T 2787-2017国家储备林改培技术规程
- GB/T 8269-2006柠檬酸
- 宏基因组测序在临床中的应用mNGS
- 煤矿电器设备失爆判定标准
评论
0/150
提交评论