第十课基于文本的应用教学课件.ppt
《第十课基于文本的应用教学课件.ppt》由会员分享,可在线阅读,更多相关《第十课基于文本的应用教学课件.ppt(75页珍藏版)》请在三一文库上搜索。
1、第十课:基于文本的应用,周甫 ,www.IT,学习目标,www.IT,学习目标,www.IT,1 程序交互的几种方式,程序在运行的时候,我们要给程序输入数据,程序根据输入的数据作出响应。 常见的输入方式有: 命令行参数 系统属性 标准的输入 从文件读入,www.IT,实例分析 1,问题的描述: 通过命令行参数给程序输入数据 解决方案: 当一个Java应用程序从终端启动时,用户可以提供零个或多个命令行参数。这些命令行参数都是字符串,这些字符串可以是独立的记号(如:arg1),也可以是引号之间的多个符号(“another arg“)。参数序列跟在程序类的名字后面输入;然后被存放在String 对象
2、的数组中,传递给main 方法。,www.IT,实例分析 1(续一),代码如下: class TestArgs public static void main(String args) for (int i = 0; i args.length ; i+) System.out.println(argsi); ,www.IT,实例分析 1(续二),结果,www.IT,实例分析 2,问题描述: 通过系统属性给程序传入数据 解决方案: 系统属性是另外一种在运行时向程序传递参数的机制。每个属性都是一个属性名和属性值的映射对。属性名和属性值都是字符串。Properties 类表示这样的映射。Syste
3、m.getProperties方法返回系统的属性对象。System.getProperties(String)方法返回String属性的值。 System.getProperties(String, String)方法允许你在属性名不存在时返回默认值。你可以使用递归调用PropertyNames方法遍历全部属性名的集合;对每个属性名调用getProperty方法得到所有属性的值。,www.IT,实例分析 2(续一),代码如下: import java.util.*; class TestSP / System Properties public static void main(String
4、args) Properties p=System.getProperties(); /第4行 Enumeration e=p.propertyNames(); /第5行 while(e.hasMoreElements() String name=(String)e.nextElement(); if(name.equals(“aaa“) String value=p.getProperty(name); System.out.println(“name: “+name+“ value: “+value); 分析:第4行取得系统属性的集合,第5行从属性集合中得到属性名的枚举.,www.IT,实
5、例分析 2 (续二),结果: 运行: java -Daaa=345 TestSP /-D后面是属性的名字,=后面是属性的值 ,注意是大写的D,www.IT,实例分析 3,问题描述: 标准的输入 解决方案: 多数应用都会发生人机交互。人机交互经常通过控制台文本输入/输出来完成。 Java 2 SDK 用公有类java.lang.System支持控制台I/O。 System.out是一个PrintStream对象,它指向运行Java应用程序的终端窗口。 System.in是一个InputStream对象,它指向用户的键盘。,www.IT,实例分析 3(续一),代码: import java.io.
6、*; class TestKI /Keyboard Input public static void main(String args) String s; /进行字符串的包装,就可以读取一行字符串 InputStreamReader isr = new InputStreamReader(System.in); BufferedReader br = new BufferedReader(isr); System.out.println(“按 ctrl+c 键或者输入exit 退出程序!“);,www.IT,实例分析 3(续二),try s = br.readLine( ); while(
7、s != null ,www.IT,实例分析 3(续三),运行:,www.IT,实例分析 4,问题的描述: 在程序中实现文件的创建,读,写 解决方案: Input/Output(I/O)是程序中最重要的元素之一。Java技术包含了一套丰富的I/O流。这一节我们要讲解文件中字符数据的读写。我们将讲述: 创建文件对象。 操作文件对象。 读写文件流。,www.IT,实例分析 4(续一),创建一个新的File对象 File类提供了若干处理文件和获取它们基本信息的方法。在java技术中,目录也是一个文件。你可以创建一个代表目录的文件,然后用它定义另一个文件: File myFile; myFile =
8、new File(“FileName“); myFile = new File(“/“, “FileName“); File myDir = new File(“/“); myFile = new File(myDir, “FileName“); *,www.IT,实例分析 4(续二),文件测试和工具 当你创建一个File对象后,你可以使用下面任何一种方法来获取有关文件的信息: 文件名: String getName() String getPath() String getAbsolutePath() String getParent() boolean renameTo(File newN
9、ame) 目录工具: boolean mkdir() String list(),www.IT,实例分析 4(续三),文件测试: boolean exists() boolean canWrite() boolean canRead() boolean isFile() boolean isDirectory() boolean isAbsolute() 通用文件信息和工具: long lastModified() long length() boolean delete(),www.IT,实例分析 4(续四),代码: import java.io.*; class TestReader pu
10、blic static void main(String args) /读取当前目录下的,该类的原文件 File f = new File(“TestReader.java“); /输出到当前目录下的out.java,系统会自动创建该文件 File f1= new File(“out.java“); FileReader fr = null ; FileWriter fw = null; BufferedReader br = null; PrintWriter pw = null;,www.IT,实例分析 4(续五),try fr = new FileReader(f); br = new
11、BufferedReader(fr); fw = new FileWriter(f1); pw = new PrintWriter(fw,true);/true 代表自动刷新到磁盘里 String ss = br.readLine(); while(ss != null ,www.IT,实例分析 4(续六),finally /不管发生不发生异常,都要进行IO流的关闭 try /防止发生空指针异常,也就是说在创建文件IO流之前发生异常。 if(br != null) br.close(); if(pw != null) pw.close(); catch(Exception e) e.print
12、StackTrace(); / 以上是关闭IO流最完整的代码 ,www.IT,实例分析 5,问题的描述: 通过控制台写数据到文件里 解决方案: 1,建立控制台的输入流 2,建立文件的输出流,www.IT,实例分析 5(续一),代码如下: import java.io.*; class TestKWF public static void main(String args) File file = new File(“keyout.java“); BufferedReader br = null; /要习惯性的给声明的引用类型变量初始化为null PrintWriter pw = null;,w
13、ww.IT,实例分析 5(续二),try br = new BufferedReader(new InputStreamReader(System.in) ); pw = new PrintWriter(new FileWriter(file) ); System.out.println(“按 ctrl+c 键 或者输入exit 退出程序!“); String s = null; s = br.readLine(); /如果按 ctrl+c 键,那么s=null,所以要先进行s!=null判断,不然 /会出现空指针异常(调用s.equals(“exit“)) while( s != null
14、,www.IT,实例分析 5(续三),catch(IOException e) e.printStackTrace(); finally try if(br != null) br.close(); if(pw != null) pw.close(); catch(Exception e) e.printStackTrace(); ,www.IT,2 Math类,Math类是用来支持数学计算的,它打包在java.lang包中,包含一组静态方法和两个常数,是终态(final)的,它不能被实例化。它主要包括下列方法: 分割 int ceil(double d):返回不小于d的最小整数。 int f
15、loor(double d):返回不大于d的最大整数。 int round(float f) :返回最接近f的整数(int)。 long round(double d) :返回最接近d的整数(long)。,www.IT,2 Math类(续一),极值、绝对值: double abs(double d):返回d的绝对值。对于 float,int,long有类似的函数。 double min(double d1,double d2):返回d1与d2中的小者. 对于float,int,long有类似的函数。 double max(double d1, double d2) :返回d1与d2中的大 者。
16、对于float,int,long有类似的函数。 三角函数: double sin(double d):返回d正弦。对于余弦和正切有类 似的函数cosine,tangent。 double asin(double d):返回d反正弦。对于反余弦和反 正切有类似的函数acos,atan。 double toDegrees(double r):将弧度换算成度。 double toRadians(double d):将度换算成弧度。,www.IT,2 Math类(续二),对数、指数 double log(double d):返回d的自然对数。 double exp(double d):返回以e为底的指
17、数。 其它函数 double sqrt(double d):返回d的平方根。 double pow(double d1, double d2):返回d1的 d2次幂。 double random():返回0 至 1 的随机数。 常数 PI:圆周率,double。 E:自然对数的底,double.,www.IT,课堂练习,比较2个随机数的大小。 要求:分别比较整数,单精度浮点数和双精度浮点数。,www.IT,3 String的方法,String concat(String s):返回一个新的String,即,在原来的String后面追加上s。 String replace(String old,
18、 String new):返回一个新的String,将原来的String中的old替换成new。 String substring(int start, int end):返回一个新的String,它是原来的String中从start到end的一部分。 String toLowerCase():返回一个新的String,它将原来的String中的大写字母变成小写。 String toUpperCase():返回一个新的String,它将原来的String中的小写字母变成大写。,www.IT,3 String的方法(续一),查找方法: boolean endsWith(String s):如果原
19、来的String以s为结尾,则返回true。 boolean startsWith(String s) :如果原来的String以s为开始,则返回true。 int indexOf(String s):返回String中第一次出现s偏移量。类似有lastindexOf,从串尾开始查找。 int indexOf(int ch):返回String中第一次出现ch偏移量。类似有lastindexOf,从串尾开始查找。 int indexOf(String s, int offset):返回String中从offset开始查找,第一次出现s的偏移量。类似有lastindexOf,从串尾开始查找。 in
20、t indexOf(int ch, int offset) 返回String中从offset开始查找,第一次出现ch的偏移量。类似有lastindexOf,从串尾开始查找。,www.IT,3 String的方法(续二),比较方法: boolean equals(String s):如果原String与s逐字符比较都相等,则返回true。 boolean equalsIgnoreCase(String s):如果在忽略大小写的情况下,原String与s逐字符比较都相等,则返回true。 int compareTo(String s):进行词汇比较,如果原String 小于s则返回负数;如果原St
21、ring 大于s则返回正数;如果原String 等于s则返回零。 其它方法: char charAt(int index):返回index处的字符。 int length():返回String的长度。,www.IT,4 StringBuffer类,StringBuffer对象是一个可以改变的统一编码字符串。String与StringBuffer之间没有继承关系。 构造函数 StringBuffer():创建一个空的StringBuffer. StringBuffer(int capacity) :创建一个空的StringBuffer,容量是capacity。 StringBuffer(Stri
22、ng initialString) :创建一个StringBuffer,其内容是initialString。,www.IT,4 StringBuffer类(续一),修改方法 StringBuffer append(String s):在原来的StringBuffer后面 追加上s。对于下列参数类型有重载的方法: boolean,char,char,double,float,int,long,Object。 StringBuffer insert(int offset, String s):在原来的 StringBuffer的offset处插入s.对于下列参数类型有重 载的方法:boolean,
23、 char, char, double, float, int, long, Object。 StringBuffer reverse():颠倒原StringBuffer中字符的顺序. void setCharAt(int index, char ch):将StringBuffer中的 index处设为ch。 void setlength(int newLength):设定StringBuffer的长度. *,www.IT,5 StringBuffer与String的区别,主要是效率上的区别。它们都可以表示一个字符串对象,只不过String类型的字符串对象,只要值改变,存储的空间也会改变,而S
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 第十 基于 文本 应用 教学 课件
链接地址:https://www.31doc.com/p-3132392.html