黑马程序员_java_IO
2013-11-29 01:48
363 查看
------- android培训、java培训、期待与您交流! ----------
JAVA中对于数据的输入/输出操作以“流(Stream)”的方式进行,J2 SDK提供了各种各样的“流”类,用以获取不同种类的数据,程序通过标准的方法输入输出数据。
输入/输出流的分类:
Java.IO包中定义了多个流类型(类或抽象类)来实现输入/输出的功能;可以从不同的角度对其进行分流:
1. 按数据流的方向不同,可以分为输入流和输出流;
从文件中读数据叫输入流,向文件或控制台打印数据叫输出流!
2. 按处理数据单位不同,可以分为字节流和字符流;
按照字节0101010一个一个字节来读的流,最原始的流叫做字节流;一个字符一个字符的往外读叫做字符流!
3. 按功能不同,可以分为节点流和处理流;
节点流可以从一个特定的数据源读写数据;处理流是“连接”在已存在的流之上,通过对数据的处理为程序提供更为强大的读写功能!
J2SDK所提供的所有流类型位于JAVA.IO的包内,都分别继承了以下四种抽象流类型: <
4000
/p>
OutputStream:你就在InputStream基础上反着想就ok了
OutputStream 功能介绍
输出数据
voidwrite(int b)往流中写一个字节b
voidwrite(byte b[])往流中写一个字节数组b
voidwrite(byte b[],int off,int len)把字节数组b中从下标off开始,长度为len的字节写入流中
flush()
刷空输出流,并输出所有被缓存的字节 由于某些流支持缓存功能,该方法将把缓存中所有内容强制输出到流中。
close()
关闭流流操作完毕后必须关闭。
InputStream 功能介绍
从流中读取数据
intread() 读取一个字节,返回值为所读得字节
intread(byte b[])
读取多个字节,放置到字节数组b中,通常读取的字节数量为b的长度,返回值为实际独取的字节的数量。
intread(byte b[] ,int off,int len)读取len个字节,放置到以下标off开始字节数组b中,返回值为实际读取的字节的数量。
intavailable()返回值为流中尚未读取的字节的数量。
longskip(long n);读指针跳过n个字节不读,返回值为实际跳过的字节数量
close()
关闭流流操作完毕后必须关闭
voidmark(int readlimit)记录当前指针的所在位置.readlimit表示读指针读出的readlimit个字节后所标记的指针位置才实效。
voidreset() 把读指针重新指向用mark方法所记录的位置
boolean markSupported()
当前的流是否支持读指针的记录功能。
字节流:
字节流包含两个顶层抽象类:InputStream和OutputStream。
1:字节流的两个顶层类是抽象类,分别是:InputStream和OutputStream。
2:每个抽象类都有子类来实现具体的功能,处理不同的设备的输入和输出。
下面简单介绍字节流的几个常用子类:
字节流:功能简单介绍
DataInputStream :包含了读取Java标准数据类型的输入流
DataOutputStream:包含了写Java标准数据类型的输出流
ByteArrayInputStream:从字节数组读取的输入流
ByteArrayOutputStream:写入字节数组的输出流
FileInputStream :从文件读入的输入流
FileOutputStream :写入文件的输出流
PrintStream :包含最常见的Print()和Println()的输出流
PushbackInputStream:返回一个字节到输入流,主要用于编译器的实现
PipedInputStream:输出管道
PipedOutputStream:输入管道
SequenceInputStream:将n个输入流联合起来,一个接一个按一定顺序读取
RandomAccessFile:随机访问文件
BufferInputStream:缓冲输入流
BufferOutputStream:缓冲输出流
FilterInputStream:实现了InputStream Interface
FilterOutputStream :实现了OutputStream Interface
InputStream:抽象类,描述流的输入
OutputStream:抽象类,描述流的输出
字符流
BufferReader(处理流)
CharArrayReader(节点流)
InputStreamReader(处理流)
FilterReader(处理流)
PipedReader(节点流)
StringReader(节点流)
注:继承自Reader的流都是用于向程序中输入数据,且数据单位为字符(两个字节)
BufferWriter(处理流)
CharArrayWriter(节点流)
InputStreamWriter(处理流)
FilterWriter(处理流)
PipedWriter(节点流)
StringWriter(节点流)
注:继承自Writer的流都是用于向程序中输出数据,且数据单位为字符(两个字节)
示例代码:
FileInpputStream和FileOutputStream:
FileReader和FileWriter:
BufferedReader和BufferedWriter:
------- android培训、java培训、期待与您交流! ----------
JAVA中对于数据的输入/输出操作以“流(Stream)”的方式进行,J2 SDK提供了各种各样的“流”类,用以获取不同种类的数据,程序通过标准的方法输入输出数据。
输入/输出流的分类:
Java.IO包中定义了多个流类型(类或抽象类)来实现输入/输出的功能;可以从不同的角度对其进行分流:
1. 按数据流的方向不同,可以分为输入流和输出流;
从文件中读数据叫输入流,向文件或控制台打印数据叫输出流!
2. 按处理数据单位不同,可以分为字节流和字符流;
按照字节0101010一个一个字节来读的流,最原始的流叫做字节流;一个字符一个字符的往外读叫做字符流!
3. 按功能不同,可以分为节点流和处理流;
节点流可以从一个特定的数据源读写数据;处理流是“连接”在已存在的流之上,通过对数据的处理为程序提供更为强大的读写功能!
J2SDK所提供的所有流类型位于JAVA.IO的包内,都分别继承了以下四种抽象流类型: <
4000
/p>
字节流 | 字符流 | |
输入流: | InputStream | Reader |
输出流: | OutputStream | Writer |
OutputStream 功能介绍
输出数据
voidwrite(int b)往流中写一个字节b
voidwrite(byte b[])往流中写一个字节数组b
voidwrite(byte b[],int off,int len)把字节数组b中从下标off开始,长度为len的字节写入流中
flush()
刷空输出流,并输出所有被缓存的字节 由于某些流支持缓存功能,该方法将把缓存中所有内容强制输出到流中。
close()
关闭流流操作完毕后必须关闭。
InputStream 功能介绍
从流中读取数据
intread() 读取一个字节,返回值为所读得字节
intread(byte b[])
读取多个字节,放置到字节数组b中,通常读取的字节数量为b的长度,返回值为实际独取的字节的数量。
intread(byte b[] ,int off,int len)读取len个字节,放置到以下标off开始字节数组b中,返回值为实际读取的字节的数量。
intavailable()返回值为流中尚未读取的字节的数量。
longskip(long n);读指针跳过n个字节不读,返回值为实际跳过的字节数量
close()
关闭流流操作完毕后必须关闭
voidmark(int readlimit)记录当前指针的所在位置.readlimit表示读指针读出的readlimit个字节后所标记的指针位置才实效。
voidreset() 把读指针重新指向用mark方法所记录的位置
boolean markSupported()
当前的流是否支持读指针的记录功能。
字节流:
字节流包含两个顶层抽象类:InputStream和OutputStream。
1:字节流的两个顶层类是抽象类,分别是:InputStream和OutputStream。
2:每个抽象类都有子类来实现具体的功能,处理不同的设备的输入和输出。
下面简单介绍字节流的几个常用子类:
字节流:功能简单介绍
DataInputStream :包含了读取Java标准数据类型的输入流
DataOutputStream:包含了写Java标准数据类型的输出流
ByteArrayInputStream:从字节数组读取的输入流
ByteArrayOutputStream:写入字节数组的输出流
FileInputStream :从文件读入的输入流
FileOutputStream :写入文件的输出流
PrintStream :包含最常见的Print()和Println()的输出流
PushbackInputStream:返回一个字节到输入流,主要用于编译器的实现
PipedInputStream:输出管道
PipedOutputStream:输入管道
SequenceInputStream:将n个输入流联合起来,一个接一个按一定顺序读取
RandomAccessFile:随机访问文件
BufferInputStream:缓冲输入流
BufferOutputStream:缓冲输出流
FilterInputStream:实现了InputStream Interface
FilterOutputStream :实现了OutputStream Interface
InputStream:抽象类,描述流的输入
OutputStream:抽象类,描述流的输出
字符流
BufferReader(处理流)
CharArrayReader(节点流)
InputStreamReader(处理流)
FilterReader(处理流)
PipedReader(节点流)
StringReader(节点流)
注:继承自Reader的流都是用于向程序中输入数据,且数据单位为字符(两个字节)
BufferWriter(处理流)
CharArrayWriter(节点流)
InputStreamWriter(处理流)
FilterWriter(处理流)
PipedWriter(节点流)
StringWriter(节点流)
注:继承自Writer的流都是用于向程序中输出数据,且数据单位为字符(两个字节)
示例代码:
FileInpputStream和FileOutputStream:
package cn.itcast.io; import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.FileOutputStream; import java.io.IOException; public class FileStreamTest { public static void main(String[] args) { int b = 0; FileInputStream in = null; FileOutputStream out = null; try { in = new FileInputStream("F:\\JAVA\\java.txt"); out = new FileOutputStream("F:\\JAVA\\java1.txt"); while((b = in.read()) != -1) { out.write(b); } in.close(); out.close(); } catch (FileNotFoundException e) { System.out.println("找不到文件"); e.printStackTrace(); } catch (IOException e) { System.out.println("文件复制错误"); e.printStackTrace(); } System.out.println("文件已复制"); } }
FileReader和FileWriter:
package cn.itcast.io; import java.io.FileNotFoundException; import java.io.FileReader; import java.io.FileWriter; import java.io.IOException; public class FileReaderWriterTest { public static void main(String[] args) { FileReader fr = null; FileWriter fw = null; int c = 0; try { fr = new FileReader("F:\\JAVA\\java.txt"); fw = new FileWriter("F:\\JAVA\\java1.txt"); while((c = fr.read()) != -1) { System.out.println((char)c); fw.write(c); } fr.close(); fw.close(); } catch (FileNotFoundException e) { System.out.println("文件找不到"); e.printStackTrace(); } catch (IOException e) { System.out.println("文件复制错误"); } System.out.println("文件已复制"); } }
BufferedReader和BufferedWriter:
package cn.itcast.io; import java.io.BufferedReader; import java.io.BufferedWriter; import java.io.FileNotFoundException; import java.io.FileReader; import java.io.FileWriter; import java.io.IOException; public class BufferWriterTest { public static void main(String[] args) { BufferedWriter bw = null; BufferedReader br = null; String s = null; try { br = new BufferedReader(new FileReader("F:\\JAVA\\java1.txt")); bw = new BufferedWriter(new FileWriter("F:\\JAVA\\java1.txt")); 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 (FileNotFoundException e) { System.out.println("找不到文件"); e.printStackTrace(); } catch (IOException e) { System.out.println("文件错误"); } } }
------- android培训、java培训、期待与您交流! ----------
相关文章推荐
- 黑马程序员——javaIO
- 黑马程序员——JAVA IO输入输出(一)
- 黑马程序员——Java IO —字符流
- 黑马程序员——Java基础---io流(io中的其他对象)
- 黑马程序员—【Java基础篇】之IO流(二)———File类、递归、IO其它流和编码表
- 黑马程序员---Java基础学习笔记(IO-后篇)
- 黑马程序员--Java基础--06输入与输出流IO
- 黑马程序员————java基础之Io一
- 黑马程序员——java基础学习(IO)
- 黑马程序员java之IO_2
- 黑马程序员---java基础知识(八):IO流
- 黑马程序员_java的IO流(对第十八课IO理解以及文件读取和字符写入总结)
- 黑马程序员--Java之IO(输入输出)(上)03
- 黑马程序员_Java基础——IO框架(下)(第6篇)
- 黑马程序员_java基础之IO(输入,输出流)
- 黑马程序员_Java基础_IO
- 黑马程序员 java基础IO操作原则随笔
- 黑马程序员——JAVA学习笔记十(IO)
- 黑马程序员--javaIO 之InputStream
- 黑马程序员 Java基础 IO