企业网站建设规划的基本原则有哪些,济南做网站推广哪家好,黄页号码怎么查,wordpress企业网站模板下载好久不见的IO流对IO流的学习#xff0c;我记得还是初学Java基础的时候#xff0c;后来找工作过程中经常看到有些招聘信息中写到熟悉IO流#xff0c;现在想想IO流#xff0c;真的是一脸懵逼#xff0c;不说这么多废话了#xff0c;IO流这次好好整理一下。说说IO流的类别在…好久不见的IO流对IO流的学习我记得还是初学Java基础的时候后来找工作过程中经常看到有些招聘信息中写到熟悉IO流现在想想IO流真的是一脸懵逼不说这么多废话了IO流这次好好整理一下。说说IO流的类别在说流的类别之前先说说什么是流流其实就是对输入输出设备的抽象可以把输入输出流理解为是一个通道输入输出是相对程序而言的如果是输出流也就是往文件中写文件而输入流则是从文件中读取文件。从三个方面对IO流进行总结一、字节流(一般都是xxxStream)二、字符流(xxxRead、xxxWrite)三、缓冲流。其实也可以简单的分为两类分别是输入流和输出流。聊聊文件在讲解IO流之前有必要说说文件的操作毕竟IO操作大部分也就是文件嘛。好了先来看看JDK-API文档吧首先看看构造方法。有了构造方法我们可以通过构造方法创建对象然后操作一波文件创建对象之后点一下好家伙很多可用方法其实常用的不多。上号开先来看看创建文件的方法吧File file new File(a.txt);boolean newFile file.createNewFile();12还能创建目录呢不服来战File file1 new File(test);file1.mkdir();12还有判断文件是否存在的方法也很常用boolean exists file.exists();1还有好多操作自己可以试试有了目录文件了是不是该往里面写点东西了来吧~字节输入流输入流是相对于程序而言的也就是从文件中读取文件先看构造方法。// 创建字节输入流对象FileInputStream fis1 new FileInputStream(a.txt);// 用单字节进行读取int x 0;while ((x fis1.read()) ! -1) { System.out.println((char) x);}12345678这样一波操作之后他会把a.txt文件里的内容读取出来但是是单字节的读的单字节的效率还是比较低的一般根据实际情况来进行自定义字节数读取下面通过自定义字节搞一波。// 创建字节输入流对象FileInputStream fis2 new FileInputStream(a.txt);// 用字节数组进行读取byte[] b new byte[1024];int len 0;while ((len fis2.read(b)) ! -1) { System.out.print(new String(b, 0, len));}12345678字节输出流输出流可以将文件写入到文件中一般日志文件写的比较多。//创建字节输出流对象FileOutputStream fos new FileOutputStream(a.txt);//调用write()方法fos.write(hello.getBytes());1234这样一波操作之后就可以把“hello”字符串转化为字节然后写入到文件中也可以读取a.txt文件中的内容写入到b.txt文件中InputStream in new FileInputStream(a.txt);OutputStream os new FileOutputStream(b.txt);byte[] bytes new byte[2];int n;while ((n in.read(bytes)) ! -1) { os.write(bytes, 0, n);}1234567字符输入流一个汉字大约占两个字节而当用字节流处理的时候可能会出现乱码的情况。字符输入流FileRead先来体验一下老规矩先来构造方法。Reader r new FileReader(a.txt);int n;char[] chars new char[2];while ((n r.read(chars)) ! -1) { String s new String(chars,0,n);}123456其实跟字节流差不多只是这里用char[]字符数组来进行操作了。字符输出流直接上构造方法字符写入的操作还以读取a.txt文件中的内容到b.txt文件中Reader r new FileReader(a.txt);Writer w new FileWriter(b.txt);int n;char[] chars new char[3];while ((n r.read(chars)) ! -1) { w.write(chars,0,n);}1234567字节缓冲输入流老规矩先看构造方法可以看出要传入一个流的参数。BufferedInputStream bis2 new BufferedInputStream(new FileInputStream(a.txt));// 用字节数组进行读取byte[] b new byte[1024];int len 0;while ((len bis2.read(b)) ! -1) { System.out.print(new String(b, 0, len));}1234567字节缓冲输出流字节缓冲输出流跟输入流差不多可以类比着看。同样的以读取a.txt的文件到b.txt为例InputStream inputStream new FileInputStream(a.txt);BufferedInputStream bis new BufferedInputStream(inputStream);OutputStream outputStream new FileOutputStream(b.txt);BufferedOutputStream bos new BufferedOutputStream(outputStream);byte[] b new byte[1024];int n 0;while (bis.read(b) ! -1) { bos.write(b);}123456789字符缓冲输入流字符缓冲输入流的参数是字符流Reader in new FileReader(a.txt);BufferedReader bufferedReader new BufferedReader(in);String str;while ((str bufferedReader.readLine()) ! null) { System.out.println(str);}123456字符缓冲输出流同样的以读取a.txt文件的内容到b.txt为例Reader in new FileReader(a.txt);Writer out new FileWriter(b.txt);BufferedReader bufferedReader new BufferedReader(in);BufferedWriter bufferedWriter new BufferedWriter(out);String str;while ((str bufferedReader.readLine()) ! null) { bufferedWriter.write(str); bufferedWriter.newLine();}12345678910流的关闭上面的demo中为了让代码简介减少重复就没有对流进行关闭操作这里统一说明一下流在使用后要进行close()关闭。文章来源: blog.csdn.net作者贺志营版权归原作者所有如需转载请联系作者。原文链接blog.csdn.net/HeZhiYing_/article/details/113541727