java(教学0)韩建雷 java web案例分析·第2讲 java基础-下.ppt_第1页
java(教学0)韩建雷 java web案例分析·第2讲 java基础-下.ppt_第2页
java(教学0)韩建雷 java web案例分析·第2讲 java基础-下.ppt_第3页
java(教学0)韩建雷 java web案例分析·第2讲 java基础-下.ppt_第4页
java(教学0)韩建雷 java web案例分析·第2讲 java基础-下.ppt_第5页
已阅读5页,还剩132页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第六章:常用类,字符串相关类(String、 StringBuffer) 基本数据类型包装类 Math类 File类 枚举类,本章内容,java.lang.String 类代表不可变的字符序列。 “xxxxx” 为该类的一个对象。 String类的常见构造方法: String(String original) 创建一个String对象为original的拷贝。 String(char value) 用一个字符数组创建一个String对象 String(char value,int offset,int count) 用一个字符数组从offset项开始的count个字符序列创建一个String对象,String类,public char charAt(int index) 返回字符串中第index个字符。 public int length() 返回字符串的长度。 public int indexOf(String str) 返回字符串中出现str的第一个位置 public int indexOf(String str,int fromIndex) 返回字符串中从fromIndex开始出现str的第一个位置 public boolean equalsIgnoreCase(String another) 比较字符串与another是否一样(忽略大小写) public String replace(char oldChar,char newChar) 在字符串中用newChar字符替换oldChar字符,String 类常用方法(1),public boolean startsWith(String prefix) 判断字符串是否以prefix字符串开头 public boolean endsWith(String suffix) 判断字符串是否以prefix字符串结尾 public String toUpperCase() 返回一个字符串为该字符串的大写形式 public String toLowerCase() 返回一个字符串为该字符串的小写形式 public String substring(int beginIndex) 返回该字符串从beginIndex开始到结尾的子字符串 public String substring(int beginIndex,int endIndex) 返回该字符串从beginIndex开始到endIndex结尾的子字符串 public String trim() 返回将该字符串去掉开头和结尾空格后的字符串,String 类常用方法(2),静态重载方法 public static String valueOf()可以将基本类型数据转换为字符串;例如: public static String valueOf(double d) public static String valueOf(int i) b + “”; 方法 public String split(String regex)可以将一个字符串按照指定的分隔符分隔,返回分隔后的字符串数组。,String 类常用方法(3),public class Test public static void main(String args) String s1 = “hello“; String s2 = “world“; String s3 = “hello“; System.out.println(s1 = s3); /true s1 = new String (“hello“); s2 = new String(“hello“); System.out.println(s1 = s2); /false System.out.println(s1.equals(s2); /true char c= s,u,n, ,j,a,v,a; String s4 = new String(c); String s5 = new String(c,4,4); System.out.println(s4); /sun java System.out.println(s5); /java ,String 类举例(1),public class Test public static void main(String args) String s1 = “sun java“,s2 = “Sun Java“; System.out.println(s1.charAt(1);/u System.out.println(s2.length();/8 System.out.println(s1.indexOf(“java“);/4 System.out.println(s1.indexOf(“Java“);/-1 System.out.println(s1.equals(s2);/false System.out.println(s1.equalsIgnoreCase(s2); /true String s = “我是程序员,我在学java“; String sr = s.replace(我,你); System.out.println(sr); /你是程序员,你在学java ,String 类举例(2),public class Test public static void main(String args) String s = “Welcome to Java World!“; String s1 = “ sun java “ ; System.out.println(s.startsWith(“Welcome“); /true System.out.println(s.endsWith(“World“); /false String sL = s.toLowerCase(); String sU = s.toUpperCase(); System.out.println(sL); /welcome to java world! System.out.println(sU); /WELCOME TO JAVA WORLD! String subS = s.substring(11); System.out.println(subS);/Java World! String sp = s1.trim(); System.out.println(sp);/sun java ,String 类举例(3),public class Test public static void main(String args) int j = 1234567; String sNumber = String.valueOf(j); /j+” System.out.println (“j 是“+sNumber.length()+“位数。“); String s = “Mary,F,1976“; String sPlit = s.split(“,“); for(int i=0;isPlit.length;i+) System.out.println(sPliti); ,String 类举例(4),课堂练习,1: 编写一个程序,输出一个字符串中的大写英文字母数,小写英文字母数以及非英文字母数。,2: 编写一个方法,输出在一个字符串中,指定字符串出现的次数。,TestString.java,课 堂 练 习,java.lang.StringBuffer 代表可变的字符序列。 StringBuffer和String类似,但StringBuffer可以对其字符串进行改变。 StringBuffer类的常见构造方法: StringBuffer() 创建一个不包含字符序列的“空”的StringBuffer对象。 StringBuffer(String str) 创建一个StringBuffer对象,包含与String对象str相同的字符序列。,StringBuffer 类,重载方法 public StringBuffer append() 可以为该StringBuffer 对象添加字符序列,返回添加后的该StringBuffer对象引用,例如: public StringBuffer append(String str) public StringBuffer append(StringBuffer sbuf) public StringBuffer append(char str) public StringBuffer append (char str,int offset,int len) public StringBuffer append(double d) public StringBuffer append(Object obj) ,StringBuffer常用方法(1),重载方法 public StringBuffer insert()可以为该StringBuffer 对象在指定位置插入字符序列,返回修改后的该StringBuffer对象引用,例如: public StringBuffer insert (int offset,String str) public StringBuffer insert (int offset,double d) 方法 public StringBuffer delete(int start,int end) 可以删除从start开始到end-1为止的一段字符序列,返回修改后的该StringBuffer对象引用。,StringBuffer常用方法(2),和 String 类含义类似的方法: public int indexOf(String str) public int indexOf(String str,int fromIndex) public String substring(int start) public String substring(int start,int end) public int length() 方法 public StringBuffer reverse()用于将字符序列逆序,返回修改后的该StringBuffer对象引用。,StringBuffer常用方法(3),public class Test public static void main(String args) String s = “Mircosoft“; char a = a,b,c; StringBuffer sb1 = new StringBuffer(s); sb1.append(/).append(“IBM“) .append(/).append(“Sun“); System.out.println(sb1); StringBuffer sb2 = new StringBuffer(“数字“); for(int i = 0;i=9;i+)sb2.append(i); System.out.println(sb2); sb2.delete(8,sb2.length().insert(0,a); System.out.println(sb2); System.out.println(sb2.reverse(); ,输出结果:,Mircosoft/IBM/Sun 数字0123456789 abc数字012345 543210字数cba,StringBuffer类举例,包装类(如:Integer,Double等)这些类封装了一个相应的基本数据类型数值,并为其提供了一系列操作。 以java.lang.Integer类为例;构造方法: Integer(int value) Integer(String s),基本数据类型包装类,包装类常见方法,以下方法以java.lang.Integer为例 public static final int MAX_VALUE 最大的int型数(231-1) public static final int MIN_VALUE 最小的int型数(-231) public long longValue() 返回封装数据的long型值 public double doubleValue() 返回封装数据的double型值 public int intValue() 返回封装数据的int型值 public static int parseInt(String s) throws NumberFormatException 将字符串解析成int型数据,返回该数据 public static Integer valueOf(String s) throws NumberFormatException 返回Integer对象,其中封装的整型数据为字符串s所表示。,TestPrimitive.java,课堂练习,编写一个方法,返回一个double型二维数组,数组中的元素通过解析字符串参数获得。如字符串参数: “1,2;3,4,5;6,7,8” 对应的数组为: d0,0=1.0 d0,1=2.0 d1,0=3.0 d1,1=4.0 d1,2=5.0 d2,0=6.0 d2,1=7.0 d2,2=8.0,ArrayParser.java,课 堂 练 习,课堂练习,String不变性;StringBuffer可变 静态方法 综合练习: 判断一个整数是否是回文数 提示:回文数指形如12321的数称为回文数,Math类,java.lang.Math提供了一系列静态方法用于科学计算;其方法的参数和返回值类型一般为double型。 abs 绝对值 acos,asin,atan,cos,sin,tan sqrt 平方根 pow(double a, double b) a的b次幂 log 自然对数 exp e为底指数 max(double a, double b) min(double a, double b) random() 返回 0.0 到 1.0 的随机数 long round(double a) double型的数据a转换为long型(四舍五入) toDegrees(double angrad) 弧度-角度 toRadians(double angdeg) 角度-弧度,public class Test public static void main(String args) double a = Math.random(); double b = Math.random(); System.out.println(Math.sqrt(a*a+b*b); System.out.println(Math.pow(a,8); System.out.println(Math.round(b); System.out.println(Math.log(Math.pow(Math.E,15); double d = 60.0, r = Math.PI/4; System.out.println(Math.toRadians(d); System.out.println(Math.toDegrees(r); ,输出结果:,0.22724854767821204 3.0369119934905976E-10 0 15.0 1.0471975511965976 45.0,Math类举例,课堂练习,编写一个小程序,给出一元二次方程的根 提示:用户输入a,b,c的值,给出根的提示和值(无根,单根,双根),java.io.File类代表系统文件名(路径或文件名)。 File类的常见构造方法: public File(String pathname) 以pathname为路径创建File对象,如果pathname是相对路径,则默认的当前路径在系统属性user.dir中存储。 File的静态属性String separator存储了当前系统的路径分隔符。,通过File对象可以访问文件的属性。 public boolean canRead() public boolean canWrite() public boolean exists() public boolean isDirectory() public boolean isFile() public boolean isHidden() public long lastModified() public long length() public String getName() public String getPath() 通过File对象创建空文件或目录(在该对象所指的文件或目录不存在的情况下)。 public boolean createNewFile()throws IOException public boolean delete() public boolean mkdir(),TestFile.java,ListFile.java,File 类,课堂练习,编写一个程序,在命令行中以树状结构展现特定的文件夹及其子文件(夹),课 堂 练 习,补充:java.lang.Enum枚举类型,枚举类型: 只能够取特定值中的一个 使用enum关键字 是java.lang.Enum类型 在某些情况下, 一个类的对象是有限而且固定的(例如:星期类,季节类, 行星类), 这种实例有限而且固定的类, 在 Java 中被称为枚举类,示例,public enum MyColor red,green,blue 可以理解为MyColor这个类只能取red,green,blue这三个对象。,枚举元素的构造方法: 只能是private或default的 枚举里面只有一个成员时,可以作为单例模式的实现方式。,总结,String 基础类型包装类 Math File 递归 枚举类型,第七章:容器/集合,数组回顾,数组的缺点 长度:固定,适应性不好 类型:固定,适应性不好,容器的概念 容器 API Collection 接口 Iterator 接口 Set 接口 List 接口 和 Comparable 接口 Collections类 Map 接口 自动打包/解包 泛型(JDK1.5新增),本章内容,阅读如下程序: public class Name private String firstName,lastName; public Name(String firstName, String lastName) this.firstName = firstName; this.lastName = lastName; public String getFirstName() return firstName; public String getLastName() return lastName; public String toString() return firstName + “+ lastName; ,public class Test public static void main(String arg) Name name1 = new Name(“f1“,“l1“); Name name2 = new Name(“f2“,“l2“); Name name3 = new Name(“f3“,“l3“); ,容器: Java API 所提供的一系列类的实例,用于在程序中存放对象。,容器的概念,J2SDK所提供的容器API位于 java.util 包内。 容器API的类图结构如下图所示:,1图1类3知识点6接口,没有顺序 不可重复,有顺序 可以重复,容器 API,Collection 接口定义了存取一组对象的方法,其子接口Set和List分别定义了存储方式。 Set 中的数据对象没有顺序且不可以重复。 List 中的数据对象有顺序且可以重复。(即互相equals) Map 接口定义了存储“键(key) 值(value)映射对”的方法。,容器 API,Collection 接口中所定义的方法:,int size(); boolean isEmpty(); void clear(); boolean contains(Object element); /equals boolean add(Object element); boolean remove(Object element); Iterator iterator(); boolean containsAll(Collection c); boolean addAll(Collection c); boolean removeAll(Collection c); boolean retainAll(Collection c); /求交集 Object toArray();,Collection 接口,import java.util.*; public class Test public static void main(String args) Collection c = new ArrayList(); /可以放入不同类型的对象 c.add(“hello“); c.add(new Name(“f1“,“l1“); c.add(new Integer(100); System.out.println(c.size(); System.out.println(c); ,Collection 方法举例,ArrayList为什么有两个remove方法?,ArrayList为什么有两个remove方法? remove(int index) 是子类新添加的! 如果是父类引用指向子类对象,则找不到子类中新添加的方法。 要想调用子类新添加的方法,需要先转型,实现Map接口的类用来存储键值 对。 Map 接口的实现类有HashMap和TreeMap等。 Map类中存储的键-值对通过键来标识,所以键值不能重复,Object put(Object key, Object value); Object get(Object key); Object remove(Object key); boolean containsKey(Object key); boolean containsValue(Object value); int size(); boolean isEmpty(); void putAll(Map t); void clear();,Equals! 所以要比较 hashcode,Map 接口,hashCode()方法和equals()方法是在Object类中就已经定义了的,所以在java中定义的任何类都会有这两个方法 原始的equals()方法用来比较两个对象的地址值,而原始的hashCode()方法用来返回其所在对象的物理地址,hashCode,hashCode,Hashset中不能有重复的元素,当一个元素添加到集合中的时候,Hashset判断元素是否重复的依据是什么? 判断两个对象的hashCode是否相等?如果不相等,认为两个对象也不相等 否则,判断两个对象用equals运算是否相等?如果不相等,认为两个对象也不相等; 如果相等,认为两个对象相等 注意:如果X.equals(Y),那么它们的X和Y的hashCode值一定要相同 hashCode非常适合用来做索引 hashCode 的常规协定 重写equals方法,通常需要重写hashCode方法.因为你的本意是想让他相等的.但hashCode如果不重写,不同的对象就不会相等 Hashcode被谁调用了?什么时候调用的?,import java.util.*; public class Test public static void main(String args) Collection c = new HashSet(); c.add(“hello“); c.add(new Name(“f1“,“l1“); c.add(new Integer(100); c.remove(“hello“); c.remove(new Integer(100); System.out.println (c.remove(new Name(“f1“,“l1“); System.out.println(c); ,Collection 方法举例,HashSet底层用HashMap来实现。 往HashSet里面放对象,同样需要重写hashcode方法,public boolean equals(Object obj) if (obj instanceof Name) Name name = (Name) obj; return (firstName.equals(name.firstName) ,容器类对象在调用remove、contains 等方法时需要比较对象是否相等,这会涉及到对象类型的 equals 方法和hashCode(hash容器)方法;对于自定义的类型,需要要重写equals 和 hashCode 方法以实现自定义的对象相等规则。 注意:相等的对象应该具有相等的 hash codes。 增加Name类的equals和hashCode方法如下:,Collection 方法举例,使用更新的Name类,运行下列程序:,import java.util.*; public class Test public static void main(String args) Collection c = new LinkedList(); c.add(new Name(“f1“,“l1“); c.add(new Name(“f2“,“l2“); System.out.println(c.contains (new Name(“f2“,“l2“); c.remove(new Name(“f1“,“l1“); System.out.println(c); ,Collection 方法举例,所有实现了Collection接口的容器类都有一个iterator方法用以返回一个实现了Iterator接口的对象。 Iterator对象称作迭代器,用以方便的实现对容器内元素的遍历操作。 Iterator接口定义了如下方法: Enumeration ArrayList - Vector,boolean hasNext(); /判断游标右边是否有元素 Object next(); /返回游标右边的元素并将游标移动到下一个位置 void remove(); /删除游标左面的元素,在执行完next之后该 /操作只能执行一次,游标,Next(),元素,Iterator 接口,import java.util.*; public class Test public static void main(String args) Collection c = new HashSet(); c.add(new Name(“f1“,“l1“); c.add(new Name(“f2“,“l2“); c.add(new Name(“f3“,“l3“); Iterator i = c.iterator(); while(i.hasNext() /next()的返回值为Object类型,需要转换为相应类型 Name n = (Name)i.next(); System.out.print(n.getFirstName()+“ “); ,Iterator 方法举例,Iterator对象的remove方法是在迭代过程中删除元素的唯一的安全方法。, Collection c = new HashSet(); c.add(new Name(“fff1“,“lll1“); c.add(new Name(“f2“,“l2“); c.add(new Name(“fff3“,“lll3“); for(Iterator i = c.iterator();i.hasNext();) Name name =(Name)i.next(); if(name.getFirstName().length()3) i.remove(); /如果换成 c.remove(name); 会产生例外 System.out.println(c);,Iterator 方法举例,Set 接口是Collection的子接口,Set接口没有提供额外的方法,但实现 Set 接口的容器类中的元素是没有有顺序的,而且不可以重复。 Set 容器可以与数学中“集合”的概念相对应。 J2SDK API中 所提供的 Set 容器类有 HashSet,TreeSet 等。,Set 接口,public static void main(String args) Set s = new HashSet(); s.add(“hello“); s.add(“world“); s.add(new Name(“f1“,“f2“); s.add(new Integer(100); s.add(new Name(“f1“,“f2“); /相同元素不会被加入 s.add(“hello“); /相同的元素不会被加入 System.out.println(s); ,Set 方法举例,public static void main(String args) Set s1 = new HashSet(); Set s2 = new HashSet(); s1.add(“a“);s1.add(“b“);s1.add(“c“); s2.add(“d“);s2.add(“a“);s2.add(“b“); /Set和List容器类都具有Constructor(Collection c) /构造方法用以初始化容器类 Set sn = new HashSet(s1); sn.retainAll(s2); /求交集 Set su = new HashSet(s1); su.addAll(s2); System.out.println(sn); System.out.println(su); ,Set 方法举例,List接口是Collection的子接口,实现List接口的容器类中的元素是有顺序的,而且可以重复。 List 容器中的元素都对应一个整数型的序号记载其在容器中的位置,可以根据序号存取容器中的元素。 J2SDK 所提供的 List 容器类有 ArrayList,LinkedList 等,Object get(int index); Object set(int index, Object element); /返回旧的元素 void add(int index, Object element); Object remove(int index); int indexOf(Object o); int lastIndexOf(Object o);,List 接口,List l1 = new LinkedList(); for(int i=0; i=5; i+) l1.add(“a“+i); System.out.println(l1); l1.add(3,“a100“); System.out.println(l1); l1.set(6,“a200“); System.out.println(l1); System.out.print(String)l1.get(2)+ “ “); System.out.println(l1.indexOf(“a3“); l1.remove(1); System.out.println(l1);,List 方法举例,类 java.util.Collections 提供了一些静态方法实现了基于List容器的一些常用算法。,void sort(List) 对List容器内的元素排序 void shuffle(List) 对List容器内的对象进行随机排列 void reverse(List) 对List容器内的对象进行逆续排列 void fill(List, Object) 用一个特定的对象重写整个List容器 void copy(List dest,List src) 将src List容器内容拷贝到dest List容器 int binarySearch(List, Object) 对于顺序的List容器,采用折半查找的方法查找特定对象,List 常用算法,输出结果:,a0, a1, a2, a3, a4, a5, a6, a7, a8, a9 a1, a3, a8, a9, a4, a6, a5, a2, a0, a7 a7, a0, a2, a5, a6, a4, a9, a8, a3, a1 a0, a1, a2, a3, a4, a5, a6, a7, a8, a9 5,List l1 = new LinkedList(); List l2 = new LinkedList(); for(int i=0; i=9; i+) l1.add(“a“+i); System.out.println(l1); Collections.shuffle(l1); /随机排列 System.out.println(l1); Collections.reverse(l1); /逆续 System.out.println(l1); Collections.sort(l1); /排序 System.out.println(l1); System.out.println (Collections.binarySearch(l1,“a5”); /折半查找,List 常用算法举例,Java.util.Arrays提供了常见数据类型的常用算法的实现(静态方法) binarySearch() sort () toString(),数组的常用算法,java.util.Collections里面的静态方法 binarySearch () sort () shuffle (),集合类的常用算法,问题:上面的算法根据什么确定容器中对象的“大小”顺序? 所有可以“排序”的类都实现了java.lang.Comparable 接口,Comparable接口中只有一个方法 public int compareTo(Object obj); 也就是说,并非所有的集合元素都可以直接执行排序等需要比较大小的操作,该方法: 返回 0 表示 this = obj 返回正数表示 this obj 返回负数表示 this obj,实现了Comparable 接口的类通过实现 comparaTo 方法从而确定该类对象的排序方式。,Comparable 接口,我们在程序中自定义的类,如果需要执行类似排序的需要比较大小的操作,需要让其实现 Comparable 接口 例如: class Person implements Comparable public String name; int age; public int compareTo(Object o) return this.age-(Person)o).age; ,Comparable 接口,Array读快改慢 Linked改快读慢 Hash搜索极快,遍历极慢 Tree插入/搜索都比较快,适合做索引,5,3,8,1,4,9,7,9,8,7,6,如何选择数据结构*,Auto-boxing/unboxing,在合适的时机自动打包、解包 自动将基础类型转换为对象 自动将对象转换为基础类型,int a = 12; Integer b = Integer.valueOf(a); int c = Value();,int a = 12; Integer b = a; int c = b;,TestMap2.java,TestAutoboxing.java,补充:JDK1.5泛型,起因: JDK1.4以前类型不明确: 装入集合的类型都被当作Object对待,从而失去自己的实际类型。 从集合中取出时往往需要转型,效率低,容易产生错误。 解决办法: 在定义集合的时候同时定义集合中对象的类型 示例:BasicGeneric.java 可以在定义Collection的时候指定 也可以在循环时用Iterator指定 好处: 增强程序的可读性和稳定性,课堂练习,为什么set中的元素不能重复,add方法实际执行的是 map 的方法, 并且我们添加的对象是 map 中的 key value 是执行的同一个对象 PRESENT. 因为map中的key是不允许重复的,所以set中的元素不能重复。 private transient HashMap map; private static final Object PRESENT = new Object(); public boolean add(E o) return map.put(o, PRESENT)=null; ,总结,Java Collections Framework 一个图 Set 无序,不可重复 / List有序,可以重复 / Map 两个类:JCF框架中还有两个很实用的公用类:Collections和Arrays Collections提供了对一个Collection容器进行诸如排序、复制、查找和填充等方法 Arrays 提供了数组的填充,查找,比较,排序等一系列的对数组的操作 两个知识点 Generic 范型 增强程序的可读性和稳定性 Auto-boxing / unboxing 谨慎使用 六个接口 Collection Set List Map Comparable Iterator,Map怎么遍历 为什么是3遍,hashcode,equals,equals 重写equals(),注意用object,用具体的类就不行了,第八章:流,Java 流式输入/输出原理 Java流类的分类 输入/输出流类 常见的节点流和处理流 文件流 缓冲流 数据流 转换流 Print流 Object流 NIO简介,本章内容,在Java程序中,对于数据的输入/输出操作以“流” (stream) 方式进行;J2SDK提供了各种各样的“流”类,用以获取不同种类的数据;程序中通过标准的方法输入或输出数据。,文件,程序,文件, 00101,程序,网路连接,程序,程序,程序,文件,程序,“hello”,Java流式输入/输出原理,流是一个很形象的概念,java.io 包中定义了多个流类型(类或抽象类)来实 现输入/输出功能;可以从不同的角度对其进行分类: 按数据流的方向不同可以分为输入流和输出流。(以程序的角度来考虑) 按处理数据单位不同可以分为字节流和字符流。 按照功能不同可以分为节点流和处理流。,J2SDK 所提供的所有流类型位于包java.io内都分别继承自以下四种抽象流类型。,输入/输出流的分类,节点流为可以从一个特定的数据源(节点)读写数据(如:文件,内存),数据源,程序,处理流是“连接”在已存在的流(节点流或处理流)之上,通过对数据的处理为程序提供更为强大的读写功能。,节点流,数据源,数据源,程序,程序,节点流和处理流,继承自InputSteam的流都是用于向程序中输入数据,且数据的单位为字节(8 bit);下图中深色为节点流,浅色为处理流。,InputStream,抽象方法: /读取一个字节并以整数的形式返回(0255), /如果返回-1已到输入流的末尾。 int read() throws IOException /读取一系列字节并存储到一个数组buffer, /返回实际读取的字节数,如果读取前已到输入流的末尾返回-1 int read(byte buffer) throws IOException /读取length个字节 /并存储到一个字节数组buffer,从off位置开始存,最多len /返回实际读取的字节数,如果读取前以到输入流的末尾返回-1 int read(byte buffer, int off, int len) throws IOException /关闭流释放内存资源 void close() throws IOException,InputStream的基本方法,示例,public static void main(String args) throws IOException int size; InputStream fileobject = new FileInputStream(args0 ); System.out.println(“可读取的字节数: “ + (size = fileobject.available(); char text = new char200 ; for (int count = 0; count size; count+) textcount = (char) fileobject.read(); System.out.print(textcount); System.out.println(“); fileobject.close(); ,继承自OutputSteam的流是用于程序中输入数据,且数据的单位为字节(8 bit);下图中深色为节点流,浅色为处理流。,OutputStream,/向输出流中写入一个字节数据,该字节数据为参数b的低8位 void write(int b) throws IOException /将一个字节类型的数组中的数据写入输出流 void write(byte b) throws IOException /将一个字节类型的数组中的从指定位置(off)开始的 /len个字节写入到输出流 void write(byte b, int

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论