Java-输入输出-的-基本原理及示例_第1页
Java-输入输出-的-基本原理及示例_第2页
Java-输入输出-的-基本原理及示例_第3页
Java-输入输出-的-基本原理及示例_第4页
Java-输入输出-的-基本原理及示例_第5页
已阅读5页,还剩2页未读 继续免费阅读

下载本文档

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

文档简介

来自:亿淘城_减肥榜 的个人笔记谢谢你的支持(*_*) 嘻嘻Java I/O原理基本概念: I/O(Input/Output) 数据源(Data Source) 数据宿(Data Sink)Java中把不同的数据源与程序间的数据传输都抽象表述为“流”(Stream),java.io包中定义了多种I/O流类型实现数据I/O功能。I/O流分类: 输入流(Input Stream)和输出流(Output Stream) 节点流(Node Stream)和处理流(Processing Stream) 字符流(Character Stream)和字节流(Byte Stream) 输入流(Input Stream)和输出流(Output Stream)1.输入流只能从中读取数据,而不能向其写数据;2.输出流则只能向其写出数据,而不能从中读取数据;3.特例:java.io.RandomAccessFile类。 节点流(Node Stream)和处理流(Processing Stream)1.节点流直接连接到数据源2.处理流是对一个已存在的流的连接和封装,通过所封装的刘的功能调用实现增强的数据读写功能,处理流并不直接连到数据源 字符流(Character Stream)和字节流(Byte Stream)1.字节流以字节为单位进行数据传输,每次传送一个或多个字节。2.字符流以字符为单位进行数据传输,每次传送一个或多个字符。 Java命名惯例:凡是以InputStream 或OutputStream结尾的类型均为字节流,凡是以Reader或Writer 结尾的均为字符流。InputStream抽象类java.io.InputStream 是所有字节输入流类型的父类,该类中定义了以字节为单位读取数据的基本方法,并在其子类中进行了分化和实现。 三个基本的 read方法:Int read()Int read(byte buffer)Int read(byte buffer,int offset,int length) 其它方法:Void close()Int available()Skip(long n)Boolean markSupported()Void mark(int readlimit)Void reset()InputStreamFileInputStreamObjectInputStreamPipedInputStreamStringBufferInputStreamFilterInputStreamSequenceInputStreamDataInputStreamByteArrayInputStreamPushbackInputStreamBufferedInputStreamLineNumberInputStreamOnputStreamJava.io.OutputStream与java.io.InputStream对应,是所有字节输出流类型的抽象父类。 三个基本的 write方法:Int write ()Int write (byte buffer)Int write (byte buffer,int offset,int length) 其它方法:Void close()OutputStreamFileOutputStreamObjectOutputStreamPipedOutputStreamFilterOutputStreamDataOutputStreamByteArrayOutputStreamPrintStreamBufferedOutputStreamVoid flush() Reader抽象类java.io.Reader是所有字符输入流类型的父类,其中声明了用于读取字符流的有关方法。 三个基本的 read方法:Int read()Int read(byte buffer)Int read(byte buffer,int offset,int length) 其它方法:Void close()Int available()Skip(long n)Boolean markSupported()Void mark(int readlimit)Void reset()Writer抽象类java.io.Writer是所有字符输出流类型的父类。 五个基本的 write方法:Void write (int c)Void write (char buffer)Void write (char buffer,int offset,int length)Void write(String string)Void write(String stirng ,int offset,int length) 其它方法:Void close()Void flush()常用的I/O流类型(1)FileInputSteam/FileOutputSteam FileInputStream用于读取本地文件中字节数据。 FileOutputStream用于将字节数据写出到文件。FileReader/FileWriter FileReader用于以字符为单位读取文本文件。 FileWriter用于将字符数据写出到文本文件中。BufferedReader/BufferedWriterBufferedReader用于缓冲读取字符。BufferedWriter则提供字符的缓冲写出功能。 常用的I/O流类型(2)InputStreamReader1InputStreamReader可封装字节输入流并从中读取字节数据,然后将之转换为字符。2转换时所使用的字符编码可以再构造方法中显示指定,也可以使用平台的默认字符编码。其构造方法格式为:Public InputStreamReader(InputStream in)Public InputStreamReader(InputStream in,String enc)OutputStreamWriter与InputStreamReader对应,OutputStreamWriter可按照特定的字符编码规则吧字符转化为字节写出到她所封装的字节输出流。 常用的I/O流类型(3)PrintStreamPrintStream在OutputSteam基础之上提供了增强的功能,即可以方便的输出各种类型数据(而不仅限于byte型)的格式化表示形式。PrintSteam 的方法从不抛出IOException.PrintWriterPrintWriter提供了PrintStream的所有的打印方法,其方法也从不抛出IOException.与PrintSteam的区别:作为处理流使用时,PrintStream只能封装OutputStream类型的字节流,而PrintWriter既可以封装OutputStream,还能够封装Writer类型字符输出流并增强器功能。 常用的I/O流类型(4)DataInputStream/DataOutputStream1. 二者分别实现了DataInput/DataOutput接口2. DataInputStream能够以一种与机器无关的方式,直接从底层字节输入流读取Java基本类型和String类型的数据,常用方法包括:Public DataInputStream(InputSteam in)Public final boolean readBoolean()Public final byte readByte()Public final char readChar()Public final double readDouble()Public final float readFloat()Public final int readLong()Public final long readLong()Public final short readShort()Public final String readUTF()3. DataOutputSteam 则能够直接将Java基本类型和String类型数据写出到其他的字节输出流。 常用的I/O流类型(5)CharArrayReaderCharArrayReader实现了一个可用作字符输入流的字符缓冲区。CharArrayWriterCharArrayWriter实现了一个可当作Writer使用的字符输出缓冲区。I/O应用专题标准I/O重定向(标 准输入重定向)import java.io.*r;import java.util.*; public class SetInput public static void main(String args) try FileInputStream fis=new FileInputStream (source.txt);System.setIn(fis);int avg=0;int total=0;int num=0;int i;BufferedReader br=new BufferedReader(new InputStreamReader(System.in);String s=br.readLine();while(s!=null)&(!s.equals()&(!s.equals(over)i=Integer.parseInt(s);num+;total+=i;avg=total/num;System.out.println(num=+num+ttotal=+total+tavg=+avg);s=br.readLine();catch(Exception e)System.err.println(time error:+new Date();System.err.println(info:);e.printStackTrace(System.err); (标 准输出重定向)public class SetOutput public static void main(String args) PrintStream ps=null;PrintStream ps_error=null;try ps=new PrintStream(new FileOutputStream(output.txt,true);System.setOut(ps);ps_error=new PrintStream(new FileOutputStream(errorLog.txt,true);System.setErr(ps_error);int avg=0;int total=0;int num=0;int i;BufferedReader br=new BufferedReader(new InputStreamReader(System.in);String s=br.readLine();while(s!=null)&(!s.equals(over)i=Integer.parseInt(s);num+;total+=i;avg=total/num;System.out.println(num=+num+ttotal=+total+tavg=+avg);s=br.readLine();catch(Exception e)System.err.println(time error:+new Date();System.err.println(info:);e.printStackTrace(System.err);finallytry ps.close();ps_error.close(); catch (Exception e) System.err.println(time error:+new Date();System.err.println(info:);e.printStackTrace(System.err); 属性信息导入/导出(属性信息导入)import java.io.*;import java.util.Properties; public class SaveProperty public static void main(String args) try Properties pro=new Properties();/Properties pro=System.getProperties();pro.setProperty(name, Scott);pro.setProperty(password, Tiger);pro.setProperty(sex, female);FileOutputStream fw=new FileOutputStream(props.txt);pro.store(fw, loginfo);fw.close(); catch (IOException e) / TODO Auto-generated catch blocke.printStackTrace(); (属性信息导出)import java.io.FileInputStream;import java.io.FileNotFoundException;import java.io.IOException;import java.util.Properties;public class LoadProperty public static void main(String args) try Properties ps=new Properties();FileInputStream fr=new FileInputStream(props.txt);ps.load(fr);fr.close();ps.list(System.

温馨提示

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

评论

0/150

提交评论