Java IO 3 : 字节流 和 字符流

it2026-02-19  16

InputStream 和 Reader:   InputStream 和 Reader 是所有输入流的抽象基类 , 本身并不能创建实例执行输入,但是他们是所有输入流的模板,他们的方法是所有输入流都可以使用的方法 InputStream:   int read()   从输入流中读取单个字节,返回读取的字节数据(字节属猪可以直接转换成int类型)   int read(byte[] b)  从输入流中读取b.length个字节数据,并将其存储在字节数组中,返回实际读取的字节数   int read(byte[]b , int off , in len)  从输入流中读取最多len个字节的数据,并将其存储在数组b中,并不是从数组起点开始,而是从off位置开始,返回实际读取的字节数。 Reader:   int read()  从输入流中读取单个字符   int read(char[] cbuf)  从输入流中读取cbuf.length个字符数据,并将其存储在字符数组中,返回实际读取的字符数   int read(char[] cbuf , int off , int len)  从输入流中 , 读取len个字符的数据, 将其存储在cbuf字符数组当中,放入数组中时并不是从数组的七点开始, 而是从off位置开始,返回实际读取的字符数 InputStream和Reader 移动记录指针的方法:   void mark(int readAheadLimit)  在记录指针当前位置记录一个标记(mark)   boolean markSupported()  判断此输入流是否支持mark()操作,即是否支持标记   void reset()  将此流的记录指针重新定位到上一次记录标记mark的位置   long skip(long n)   记录指针向前移动n个字节/字符 InputStream和Reader OutputStream和Writer:相应的方法   void write(int c)  将制定的字节/字符输出到输出流中,c既可以代表字节,也可以代表字符   void write(byte[]/char[] buf)   将字节数组/字符数组中的数据传输到指定流中   void write(byte[]/char[] buf , int off , int len)  将字节数组/字符数组中从off开始,长度为len的字节/字符输出到输出流中 Writer 可以用字符串来代替字符数组,还有String对象作为参数。   void write(String str)  将str字符串里包含的字符输出到指定输出流中   void write(String str , int off , int len)  将Str字符串里从off开始,长度为len的字符输出到指定的输出流中 OutputStream和Writer

操作流的步骤:

  1.建立流的管道,需要一个明确的File数据源  2.进行字节/字符的读/写的操作  3.操作完毕,关闭流

public class File02 { public static void main(String[] args) throws IOException { //创建一个输入流管道 FileInputStream fis = new FileInputStream(new File("D://demo/a.txt")); //创建一个长度为1024的水桶 byte[] b = new byte[1024]; //用户保存实际读取的字节数 int hasRead = 0; FileOutputStream out = new FileOutputStream(new File("D://demo/acopy.txt")); while((hasRead = fis.read(b)) != -1) { //取出水桶中的水, 然后做需要的操作 out.write(b , 0 , hasRead); } //关闭流 out.close(); fis.close(); } } View Code

 

Java输入输出流体系中常用的流分类 分类字节输入流字节输出流字符输入流字符输出流抽象基类InputStreamOutputStreamReaderWriter访问文件FileInputStreamFileOutputStreamFileReaderFileWriter访问数组BiteArrayInputStreamBiteArrayOutputStreamCharArrayReaderCharArrayWriter访问管道PipedInputStreamPipedOutputStreamPipedReaderPipedWriter访问字符串  StringReaderStringWriter缓冲流BufferedInputStreamBufferedOutputStreamBufferedReaderBufferedWriter转换流  InputStreamReaderOutputStreamWriter对象流ObjectInputStreamObjectOutputStream  抽象基类FilterInputStreamFilterOutputStreamFilterReaderFilterWriter打印流 PrintStream PrintWriter推回输入流PushbackInputStream PushbackReader 特殊流DataInputStreamDataOutputStream  

转载于:https://www.cnblogs.com/Uzai/p/9646895.html

最新回复(0)