当前位置: 首页 > news >正文

湛江搭建做网站在哪里做影视传媒网站设计

湛江搭建做网站在哪里做,影视传媒网站设计,网站设计画布规范1680,网站排名 影响因素学习IO部分的知识后#xff0c;被处理流的各种类搞得有点乱#xff0c;所以得写篇文章总结下。IO包里面有很多输入输出类#xff0c;一般我们是通过控制流来控制输入输出的。IO包里面对于控制流分为两大类#xff0c;一类是字节流#xff0c;一类是字符流。字符流的两个大…    学习IO部分的知识后被处理流的各种类搞得有点乱所以得写篇文章总结下。IO包里面有很多输入输出类一般我们是通过控制流来控制输入输出的。    IO包里面对于控制流分为两大类一类是字节流一类是字符流。字符流的两个大类是ReaderWriter字节流的是InputSream和OutputStream。通过这两个流以及其子类我们可以控制系统与程序的输入输出。1.  从类名看流以字符流为例1.1 根据命名规则来选择类      由上图可以看出Reader、Writer类有很多子类每个子类的名称构造都是“功能对应的类别”这就是IO包类命名的规则。所以我们可以从类名的后一部分看出它是属于字符流还是字节流的然后从前一部分看出它的功能是什么。根据这个规则我们可以选择合适的类来处理流。1.2 各类的作用以及关系   IO包的类不少但是他们之间都是有关系的想Reader用来读取字节流其子类是根据要读取不同的源而需要不同的功能而划分的。比如Reader的子类BufferedReader就是提供缓冲读取提高效率。CharArrayReader则是把字符数组当做源来读取流数据FilterReader则是对已过滤流的读取OutputStreamReader则是转换流是字符流与字节流之间的桥梁因为他可以把字节流当做源读取数据当做字节流输出所以它在初始化可以选择编码如果不设置则设置为系统的默认编码。这个类会被经常用到。而StringReader跟CharArrayReader类似只是他是把字符串当做源来读数据。另外常用到的还有InputSreamReader的子类FileReader它可以直接从File对象读取数据一般能直接操作文件的类都会比较常用到。至于Writer类跟Reader类似但是它有个功能比较强大的子类就是PrintWriter。该类在开发中很经常用到。       上图是PrintWriter的构造方法可以看出他面向的目的流是多样化的可以直接往File对象同时可以为其采用相应的字符集、OutputStream输出流可设置是否每次写入后自动flush写数据可以通过字符串构造的文件路径名建立文件并写写入同时可以传入Writer对象增强Writer的功能。而且它还可以使用printprintfprintln往目的流输入各种数据。一下是其使用的一个案例package   tst.IODemo;import   java.io. * ;publicclass   PrintWriterDemo {publicstaticvoid   main(String[] args)   throws   IOException {         writeMethods ();}publicstaticvoid   writeMethods()   throws   FileNotFoundException {        PrintWriter pw new   PrintWriter( d:\\a.txt );    //可以写到指定的文件里char [] buf { a , b , c };        pw.write(buf);      //可以写入字符数据        pw.println( 123 );   //可以直接用 println 方法往目的流输入数据        pw.print( 456 );        pw.println();    //写入一个换行符        pw.write( 49 );    //可以写入整数但是写到文本里会根据ASCII表写入相应的字符        pw.write( weuroei );   //可以直接写字符串        pw.format( %s ,   wcc );    //可以给字符串规定格式写入        pw.close();    }}    各类的关系虽然上面讲的都是字符流但是他们的道理是相同的只是一个是以字符形式读取和写入而一个是以字节形式读取写入。他们的区别是源或目的不同所以他们的构造方法传入的参数不同会根据是什么作用而传入何种参数比如StringReader的构造参数会传入字符串而CharArrayReader传入的则是字节数组。大体方法相同但是不同功能的类会有区别于其他类的特有功能比如处理字符串的处理字节数组的缓冲的。2. 程序实践2.1 实践中使用的思路总结    一般该类的使用前首先判断是要操作字节流还是字符流再者确定是要读取或者是写入。确定后一般分三层进行必须要有源流或是目的流然后根据该流是文件的字符串的还是字节的。接下来就是是否需要字节流与字符流之间的转换需要则选InputSreamReader、OutputStreamWriter。然后就考虑读写效率的提高这个就可以选择带Buffered的了。还有其他各种各样的功能比如合并流的SequenceInputStream、处理音频的AudioInputStream等等记住大概使用思路使用时忘记不懂再查API就OK了。2.2 各种程序实践1FileReader的使用Reader-InputSreamReader子类    由该类的名字我们可以知道他是操作文件的可以直接打开文件读取文件的数据到输入流。package  tst.IODemo;import  java.io.*;publicclass  FileReaderDemo {publicstaticvoid  main(String[] args)  throws  IOException {        FileReader fr new  FileReader( WriterException.java );char [] buf newchar [1024];int  num;while ((num fr.read(buf)) !-1) {            System. out .print( new  String(buf,0,num));        }                fr.close();    }}2拥戴Buffered相关类提高FileReader和FileWriter读写效率    该时间里面写用BufferedWriter但是自己根据BufferedReader的原理自己写了一个MyBufReader模拟BufferedReader的运行结果同样可读取数据。该例子里的BufferedReader和BufferedWriter主要是用于提高FileReader和FileWriter两者个工作效率读N个数据放到缓存再一次性写到输出流避免读一个字节写一次提高效率。package  tst.IODemo;import  java.io.*;publicclass  BufCopyText {publicstaticvoid  main(String[] args) {        MyBufReader fr  null ;        BufferedWriter fw  null ;try  {            fr new  MyBufReader( new  FileReader( E:\\学习资源\\cmd.exe ));            fw new  BufferedWriter( new  FileWriter( E:\\学习资源\\cmd1.exe ));            String buf  null ;while ((buf fr.myReadLine()) !  null ) {                fw.write(buf);                fw.newLine();                fw.flush();            }        }  catch  (IOException e) {thrownew  RuntimeException( 读写失败 );        }  finally  {if  (fr !  null ) {try  {                    fr.close();                }  catch  (IOException e) {thrownew  RuntimeException( 读缓存关闭失败。 );                }            }if  (fw !  null ) {try  {                    fw.close();                }  catch  (IOException e) {thrownew  RuntimeException( 写缓存关闭失败。 );                }            }        }        }}/** * 该类模拟BufferedReader的工作原理作用相同。 * */class  MyBufReader {    FileReader  r ;int   buf ;public  MyBufReader(FileReader r) {this . r   r;    }public  String myReadLine()  throws  IOException {        StringBuilder sb new  StringBuilder();while (( buf    r .read()) !-1) {if ( buf  \r ) {continue ;            }if ( buf  \n ) {return  sb.toString();            }            sb.append(( char ) buf );        }if (sb.length() !0) {return  sb.toString();        } return   null ;    }publicvoid  close()  throws  IOException {         r .close();    }}3接下来则是字节流的实践从键盘往文件里面写数据     该例子实现的功能是在控制台通过键盘输入数据然后通过FileOutputStream打开一个文件通过OutputStreamWriter把输入的字节流转换成字符流输出到a.txt文本同时运用BufferedWriter提高写入效率。package  tst.IODemo;import  java.io.*;publicclass  OutputStreamWriterDemo {publicstaticvoid  main(String[] args)  throws  IOException {        BufferedReader br new  BufferedReader( new  InputStreamReader(System. in ));        BufferedWriter bw new  BufferedWriter( new  OutputStreamWriter( new  FileOutputStream( a.txt ), UTF-8 ));        String buf  null ;while ((buf br.readLine()) !  null ) {if (buf.equals( over ))  break ;    //当输入“over”时则写入结束over不写入文件            bw.write(buf);            bw.newLine();        }                br.close();        bw.close();            }}4读取一个文件的内容并输出到控制台上     读取一个文件把内容输出到控制台上同时获取开始和结束时间比较BufferedInputSream和BufferedOutputStream与DataInputStream和DataOutputStream的效率果然发现Buffered类的效率搞了将近一倍使用Buffered类的我们不需要去控制他的缓冲区只要跟其他类一样正常使用就行他内部自己有使用缓冲方法的机制。package  tst.IODemo;import  java.io.*;publicclass  BufInputStream {publicstaticvoid  main(String[] args)  throws  IOException {          BufferedInputStream bis new  BufferedInputStream( new  FileInputStream( SysInfo.txt ));          BufferedOutputStream bop new  BufferedOutputStream(System. out );//        DataInputStream  bis   new DataInputStream(new FileInputStream(SysInfo.txt));//        DataOutputStream  bop   new DataOutputStream(System.out);int  buf;long  start System. currentTimeMillis ();while ((buf bis.read()) !-1) {            bop.write(buf);            bop.flush();                     }        long  end System. currentTimeMillis ();          System. out .println((end - start) 毫秒 );          bis.close();          bop.close();    }}5合并流     把多个输入流合并成一个大的输入流然后一起写到输出流中。package tst.IODemo;import java.io.*;import java.util.*;publicclass SequenceDemo {publicstaticvoid main(String[] args) throws IOException {        VectorFileInputStream v new VectorFileInputStream();        PrintWriter pw;try {//从当前目录读取三个txt文件1.txt,2.txt,3.txt            FileInputStream fis1 new FileInputStream(D:\\1.txt);            FileInputStream fis2 new FileInputStream(D:\\2.txt);            FileInputStream fis3 new FileInputStream(D:\\3.txt);//创建4.txt文件            pw new PrintWriter(new FileOutputStream(D:\\4.txt));//把3个文件存入向量集合v中是为了生成下面的EnumerationFileInputStream集合            v.add(fis1);            v.add(fis2);            v.add(fis3);        } catch(FileNotFoundException e) {thrownew RuntimeException(文件打开失败。请查询文件是否存在);        }        EnumerationFileInputStream e v.elements();//SequenceInputStream构造函数只要两个方法一个是传入两个InputSream这只能合并两个流//想要合并多个流则需要传入一个Enumeration集合才可以。        SequenceInputStream sis new SequenceInputStream(e);int buf;while((buf sis.read()) !-1) {            pw.write(buf);                  //三个流一起写入到输出流        }          sis.close();        pw.close();        System.out.println(Done!);    }} 转载于:https://blog.51cto.com/cthhqu/1262101
http://www.zqtcl.cn/news/697312/

相关文章:

  • 网站代理怎么做的wordpress有什么缺点
  • 哪些网站可以做免费外贸Wordpress首图自动切换
  • 建网站几个按钮公司黄页企业名录在哪里查
  • 网站建设类外文翻译游戏开科技软件免费
  • 黄山家居网站建设怎么样济南在线制作网站
  • 东莞电子产品网站建设营销型网站推广方式的论文
  • 如何寻找做网站的客户聚名网查询
  • 甘肃制作网站凡科快图官网登录入口在线
  • discuz网站建设教学视频教程哪些大型网站有做互联网金融
  • jquery动画特效网站物流网站前端模板下载
  • 上海集团网站建设网站都是用什么语言写的
  • 地铁公司招聘信息网站网站推广页面 英语
  • 廊坊做网站的企业哪家好做网站app价格多少钱
  • wap网站制作当阳网站建设电话
  • 服装电子商务网站建设3000字中装建设有限公司
  • 河南卓越建设工程有限公司网站怎么做垂直门户网站
  • 接单做网页的网站手机端app开发公司
  • 古田路9号设计网站在线制作图片拼图
  • 深圳网站开发ucreator售后服务 网站建设
  • 做网站的语北京比较好的it公司
  • 长春建站模板制作php项目开发案例源码
  • 绍兴seo外包公司山东网站建设优化
  • php做网站知乎境外网站icp备案
  • 做seo网站图片怎么优化地坪漆东莞网站建设技术支持
  • wordpress theme forest济南优化网站排名
  • 简述网站的制作步骤合肥网站建设需
  • 网站备案的程序哪里能买精准客户电话
  • 白云网站建设网站版式
  • 做美食有哪些网站科技公司介绍
  • 网站后台被百度蜘蛛抓取哪个做网站比较好