ImageVerifierCode 换一换
格式:DOCX , 页数:17 ,大小:2.35MB ,
资源ID:5460017      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/5460017.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(马士兵 JAVA视频教程第08章流IO.docx)为本站会员(b****4)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

马士兵 JAVA视频教程第08章流IO.docx

1、马士兵 JAVA视频教程第08章流IO第八章 流1Java流式输入/输出原理2Java流类的分类3输入,输出流类4常见的节点流(常见:文件流,分为:字符,字节流/输入,输出流)和处理流(常见:缓冲流,分为)4.1文件流4.2缓冲流5 数据流6 转换流7 Print流8 Object流2010年3月31日星期三, 19:54:28 2010年4月2日 星期五20:00:271. java流式输入输出流原理 文件(桶) - 流(管道) - 程序2. java输入输出流分类 (输入输出相对于程序来说的,而不是文件)Java.io包中定义了多个流类型(类或者抽象类)来实现输入/输出功能:可以不按数据流

2、的方向不同分为输入流和输出流按处理数据单位不同分为字节流和字符流按功能不同分为节点流和处理流J2SDK所提供的所有流类型位于包Java,io内都分别继承自以下四中抽象流类型。字节流(Stream)字符流(两个字节)输入流InputStreamReader输出流OutputStreamWriter3. 输入/输出流类4个1 InputStream 继承自InputStream的流都是用于向程序中输入数据,且数据的单位为字节(8bit),下图深色为节点流,浅色为处理流InputStream的基本方法2 OutputStream 继承自outputStream的流都是用于程序中输入数据,且数据的单位

3、为字节(8bit),下图深色为节点流,浅色为处理流OutputStream的基本方法3 Reader 继承自Reader的流都是用于向程序输入数据,且数据的单位为字节(16bit),下图深色为节点流,浅色为处理流Reader的基本用法4 Writer 继承自Writer的流都是用于程序中输入数据,且数据的单位为字节(16bit),下图深色为节点流,浅色为处理流writer的基本用法4. 常见节点流/处理流4.1 节点流类型(直接读取写入.不经过处理)4.1.1 常见节点流:文件流例子:IO TestFileInputStream.java 字节流按一个字节一个字节读取文件import java

4、.io.*;public class TestFileInputStream public static void main(String args) int b = 0; FileInputStream in = null; try in = new FileInputStream(F:My WorkspaceJavaIOTestFileInputStream.java); catch (FileNotFoundException e) System.out.println(找不到指定文件); System.exit(-1); try /读数据 long num = 0; while(b=i

5、n.read()!=-1)/读一个字节到变量b,b=-1表示读取完成 System.out.print(char)b); num+;/计数 in.close(); System.out.println(); System.out.println(共读取了 +num+ 个字节); catch (IOException e1) System.out.println(文件读取错误); System.exit(-1); IOTestFileOutputStream.java 字节流复制文件import java.io.*;public class TestFileOutputStream public

6、 static void main(String args) int b = 0; FileInputStream in = null; /声明in为文件输入流(管道) FileOutputStream out = null;/声明out为文件输流(管道) try in = new FileInputStream(F:/My Workspace/Java/IO/TestFileOutputStream.java); out = new FileOutputStream(F:/My Workspace/Java/IO/copy TestFileOutputStream.java); while(

7、b=in.read()!=-1) out.write(b); in.close(); out.close(); catch (FileNotFoundException e2) System.out.println(找不到指定文件); System.exit(-1); catch (IOException e1) System.out.println(文件复制错误); System.exit(-1); System.out.println(文件已复制); IOTestFileReader.java 字符流按一个字符一个读取文件import java.io.*;public class Test

8、FileReader public static void main(String args) FileReader fr = null; int c = 0; try fr = new FileReader(d:sharejavaioTestFileReader.java); int ln = 0; while (c = fr.read() != -1) /char ch = (char) fr.read(); System.out.print(char)c); /if (+ln = 100) System.out.println(); ln = 0; fr.close(); catch (

9、FileNotFoundException e) System.out.println(找不到指定文件); catch (IOException e) System.out.println(文件读取错误); IO TestFileWriter.java 字符流输出大多国家的数文字import java.io.*;public class TestFileWriter public static void main(String args) FileWriter fw = null; try fw = new FileWriter(F:My WorkspaceJavaIOunicode.txt)

10、; for(int c=0;c=50000;c+) fw.write(c); fw.close(); catch (IOException e1) e1.printStackTrace(); System.out.println(文件写入错误); System.exit(-1); IOTestFileWriter2.java 字符流复制文件 并且每个字符后面多输出一个“|”字符import java.io.*;public class TestFileWriter2 public static void main(String args) int b = 0; FileReader fn =

11、null; FileWriter fw = null; try fn = new FileReader(F:My WorkspaceJavaIOTestFileWriter2.java); fw = new FileWriter(F:My WorkspaceJavaIOcopy TestFileWriter2.txt); while(b = fn.read()!=-1) fw.write(“|”); fw.write(b); fn.close(); fw.close(); catch (IOException e1) e1.printStackTrace(); System.out.print

12、ln(文件写入错误); System.exit(-1); 4.2 处理流( 经过处理的流)4.2.1常见处理流:缓冲流 IO TestBufferStream1.javaimport java.io.*;public class TestBufferStream1 public static void main(String args) try FileInputStream fis = new FileInputStream(F:My WorkspaceJavaIOTestBufferStream1.java); BufferedInputStream bis = new BufferedI

13、nputStream(fis); int c = 0; System.out.println(bis.read(); System.out.println(bis.read(); bis.mark(100); /从100号往外读 for(int i=0;i=10 & (c=bis.read()!=-1;i+) System.out.print(char)c+ ); System.out.println(); bis.reset();/回到标记点 for(int i=0;i=10 & (c=bis.read()!=-1;i+) System.out.print(char)c+ ); bis.cl

14、ose(); catch (IOException e) e.printStackTrace(); IO/TestBufferStream2.java 带缓冲区的输入输出流(能读一行)import java.io.*;public class TestBufferStream2 public static void main(String args) try BufferedWriter bw = new BufferedWriter(new FileWriter(d:sharejavadat2.txt); BufferedReader br = new BufferedReader( new

15、 FileReader(d:sharejavadat2.txt); String s = null; for(int i=1;i=100;i+) s = String.valueOf(Math.random(); bw.write(s); bw.newLine(); bw.flush();/全部取出缓冲区数据 while(s=br.readLine()!=null)/读一行 System.out.println(s); bw.close(); br.close(); catch (IOException e) e.printStackTrace(); 5. 转换流InputStreamRead

16、er和OutputStreamWriter用于与字节数据到字符数据之间转换。InputStreamReader需和InputStream“套接”。InputStream转换成ReaderOutputStreamWriter需和OutputStream“套接”。OutputStream转换成Writer转换流在构造时可以指定起编码集合,例如InputStream isr = new InputStreamReader ( System.in, “ISO08859_1”)例子IOTestTransForm1.javaIOTestTransForm2.javaimport java.io.*;pub

17、lic class TestTransForm2 public static void main(String args) InputStreamReader isr = new InputStreamReader(System.in);/接受键盘输入 BufferedReader br = new BufferedReader(isr); String s = null; try s = br.readLine();/读一行 while(s!=null) if(s.equalsIgnoreCase(exit) break; System.out.println(s.toUpperCase()

18、; s = br.readLine(); br.close(); catch (IOException e) e.printStackTrace(); /阻塞6. 数据流 DataInputStream 和DataOutputStream分别继承自InputStream和OutputStream,它属于处理流,需要分别“套接”在InputStream和OutputStream类型的节点流上。DataInputStream和DataOutputStream踢狗了可以存取与机器无关的Java原始类型数据(如:int,double等)的方法DataInputStream和DataOutputStre

19、am的构造方法:DataInputStream( InputStream in)DataOutputStream( OutputStream out)例子7. Print流例子1import java.io.*;public class TestPrintStream1 public static void main(String args) PrintStream ps = null; try FileOutputStream fos = new FileOutputStream(d:baklog.dat); ps = new PrintStream(fos); catch (IOExcep

20、tion e) e.printStackTrace(); if(ps != null) System.setOut(ps);/设置输出窗口. int ln = 0; for(char c = 0; c =100) System.out.println(); ln = 0; 例子3import java.util.*; import java.io.*;public class TestPrintStream3 public static void main(String args) String s = null; BufferedReader br = new BufferedReader(

21、 new InputStreamReader(System.in); try FileWriter fw = new FileWriter (d:baklogfile.log, true); /Log4J PrintWriter log = new PrintWriter(fw); while (s = br.readLine()!=null) if(s.equalsIgnoreCase(exit) break; System.out.println(s.toUpperCase(); log.println(-); log.println(s.toUpperCase(); log.flush(

22、); log.println(=+new Date()+=); log.flush(); log.close(); catch (IOException e) e.printStackTrace(); 8. Object流 直接将Object写入或读出 transient关键字 透明的 serializable接口 可序列化externalizable接口 控制序列化import java.io.*;public class TestObjectIO public static void main(String args) throws Exception T t = new T(); t.k

23、 = 8; FileOutputStream fos = new FileOutputStream(d:/share/java/io/testobjectio.dat); ObjectOutputStream oos = new ObjectOutputStream(fos); oos.writeObject(t); oos.flush(); oos.close(); FileInputStream fis = new FileInputStream(d:/share/java/io/testobjectio.dat); ObjectInputStream ois = new ObjectInputStream(fis); T tReaded = (T)ois.readObject(); System.out.println(tReaded.i + + tReaded.j + + tReaded.d + + tReaded.k); class T implements Serializable int i = 10; int j = 9; double d = 2.3; transient int k = 15;

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1