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

梅州网站开发网站策划书的撰写流程?

梅州网站开发,网站策划书的撰写流程?,流量平台是什么意思,主流搭建网站IO流之字符流 1. 字符流1.1 字符输入流【Reader】1.2 FileReader类构造方法读取字符数据 1.3 字符输出流【Writer】1.4 FileWriter类构造方法基本写出数据关闭和刷新写出其他数据 2. IO异常的处理JDK7前处理JDK7的处理JDK9的改进 3. 综合练习练习1#xff1a;拷贝文件夹练习2拷贝文件夹练习2文件加密练习3数字排序 1. 字符流 当使用字节流读取文本文件时可能会有一个小问题。就是遇到中文字符时可能不会显示完整的字符那是因为一个中文字符可能占用多个字节存储。所以Java提供一些字符流类以字符为单位读写数据专门用于处理文本文件。 1.1 字符输入流【Reader】 java.io.Reader抽象类是表示用于读取字符流的所有类的超类可以读取字符信息到内存中。它定义了字符输入流的基本共性功能方法。 public void close() 关闭此流并释放与此流相关联的任何系统资源。public int read() 从输入流读取一个字符。public int read(char[] cbuf) 从输入流中读取一些字符并将它们存储到字符数组 cbuf中 。 1.2 FileReader类 java.io.FileReader 类是读取字符文件的便利类。构造时使用系统默认的字符编码和默认字节缓冲区。 小贴士 字符编码字节与字符的对应规则。Windows系统的中文编码默认是GBK编码表。 idea中UTF-8 字节缓冲区一个字节数组用来临时存储字节数据。 构造方法 FileReader(File file) 创建一个新的 FileReader 给定要读取的File对象。FileReader(String fileName) 创建一个新的 FileReader 给定要读取的文件的名称。 当你创建一个流对象时必须传入一个文件路径。类似于FileInputStream 。 构造举例代码如下 public class FileReaderConstructor throws IOException{public static void main(String[] args) {// 使用File对象创建流对象File file new File(a.txt);FileReader fr new FileReader(file);// 使用文件名称创建流对象FileReader fr new FileReader(b.txt);} }读取字符数据 读取字符read方法每次可以读取一个字符的数据提升为int类型读取到文件末尾返回-1循环读取代码使用演示 public class FRRead {public static void main(String[] args) throws IOException {// 使用文件名称创建流对象FileReader fr new FileReader(read.txt);// 定义变量保存数据int b // 循环读取while ((b fr.read())!-1) {System.out.println((char)b);}// 关闭资源fr.close();} } 输出结果 我 是 程 序 员小贴士虽然读取了一个字符但是会自动提升为int类型。 使用字符数组读取read(char[] cbuf)每次读取b的长度个字符到数组中返回读取到的有效字符个数读取到末尾时返回-1 代码使用演示 public class FRRead {public static void main(String[] args) throws IOException {// 使用文件名称创建流对象FileReader fr new FileReader(read.txt);// 定义变量保存有效字符个数int len // 定义字符数组作为装字符数据的容器char[] cbuf new char[2];// 循环读取while ((len fr.read(cbuf))!-1) {System.out.println(new String(cbuf));}// 关闭资源fr.close();} } 输出结果 我是 程序 员序获取有效的字符改进代码使用演示 public class FISRead {public static void main(String[] args) throws IOException {// 使用文件名称创建流对象FileReader fr new FileReader(read.txt);// 定义变量保存有效字符个数int len // 定义字符数组作为装字符数据的容器char[] cbuf new char[2];// 循环读取while ((len fr.read(cbuf))!-1) {System.out.println(new String(cbuf,0,len));}// 关闭资源fr.close();} }输出结果 我是 程序 员1.3 字符输出流【Writer】 java.io.Writer 抽象类是表示用于写出字符流的所有类的超类将指定的字符信息写出到目的地。它定义了字节输出流的基本共性功能方法。 void write(int c) 写入单个字符。void write(char[] cbuf) 写入字符数组。abstract void write(char[] cbuf, int off, int len) 写入字符数组的某一部分,off数组的开始索引,len写的字符个数。void write(String str) 写入字符串。void write(String str, int off, int len) 写入字符串的某一部分,off字符串的开始索引,len写的字符个数。void flush() 刷新该流的缓冲。void close() 关闭此流但要先刷新它。 1.4 FileWriter类 java.io.FileWriter 类是写出字符到文件的便利类。构造时使用系统默认的字符编码和默认字节缓冲区。 构造方法 FileWriter(File file) 创建一个新的 FileWriter给定要读取的File对象。FileWriter(String fileName) 创建一个新的 FileWriter给定要读取的文件的名称。 当你创建一个流对象时必须传入一个文件路径类似于FileOutputStream。 构造举例代码如下 public class FileWriterConstructor {public static void main(String[] args) throws IOException {// 使用File对象创建流对象File file new File(a.txt);FileWriter fw new FileWriter(file);// 使用文件名称创建流对象FileWriter fw new FileWriter(b.txt);} }基本写出数据 写出字符write(int b) 方法每次可以写出一个字符数据代码使用演示 public class FWWrite {public static void main(String[] args) throws IOException {// 使用文件名称创建流对象FileWriter fw new FileWriter(fw.txt); // 写出数据fw.write(97); // 写出第1个字符fw.write(b); // 写出第2个字符fw.write(C); // 写出第3个字符fw.write(30000); // 写出第4个字符中文编码表中30000对应一个汉字。/*【注意】关闭资源时,与FileOutputStream不同。如果不关闭,数据只是保存到缓冲区并未保存到文件。*/// fw.close();} } 输出结果 abC田小贴士 虽然参数为int类型四个字节但是只会保留一个字符的信息写出。未调用close方法数据只是保存到了缓冲区并未写出到文件中。 关闭和刷新 因为内置缓冲区的原因如果不关闭输出流无法写出字符到文件中。但是关闭的流对象是无法继续写出数据的。如果我们既想写出数据又想继续使用流就需要flush 方法了。 flush 刷新缓冲区流对象可以继续使用。close :先刷新缓冲区然后通知系统释放资源。流对象不可以再被使用了。 代码使用演示 public class FWWrite {public static void main(String[] args) throws IOException {// 使用文件名称创建流对象FileWriter fw new FileWriter(fw.txt);// 写出数据通过flushfw.write(刷); // 写出第1个字符fw.flush();fw.write(新); // 继续写出第2个字符写出成功fw.flush();// 写出数据通过closefw.write(关); // 写出第1个字符fw.close();fw.write(闭); // 继续写出第2个字符,【报错】java.io.IOException: Stream closedfw.close();} }小贴士即便是flush方法写出了数据操作的最后还是要调用close方法释放系统资源。 写出其他数据 写出字符数组 write(char[] cbuf) 和 write(char[] cbuf, int off, int len) 每次可以写出字符数组中的数据用法类似FileOutputStream代码使用演示 public class FWWrite {public static void main(String[] args) throws IOException {// 使用文件名称创建流对象FileWriter fw new FileWriter(fw.txt); // 字符串转换为字节数组char[] chars 我是程序员.toCharArray();// 写出字符数组fw.write(chars); // 我是程序员// 写出从索引2开始2个字节。索引2是程两个字节也就是程序。fw.write(b,2,2); // 程序// 关闭资源fos.close();} }写出字符串write(String str) 和 write(String str, int off, int len) 每次可以写出字符串中的数据更为方便代码使用演示 public class FWWrite {public static void main(String[] args) throws IOException {// 使用文件名称创建流对象FileWriter fw new FileWriter(fw.txt); // 字符串String msg 我是程序员;// 写出字符数组fw.write(msg); //我是程序员// 写出从索引2开始2个字节。索引2是程两个字节也就是程序。fw.write(msg,2,2); // 程序// 关闭资源fos.close();} }续写和换行操作类似于FileOutputStream。 public class FWWrite {public static void main(String[] args) throws IOException {// 使用文件名称创建流对象可以续写数据FileWriter fw new FileWriter(fw.txttrue); // 写出字符串fw.write(我是);// 写出换行fw.write(\r\n);// 写出字符串fw.write(程序员);// 关闭资源fw.close();} } 输出结果: 我是 程序员小贴士字符流只能操作文本文件不能操作图片视频等非文本文件。 当我们单纯读或者写文本文件时 使用字符流 其他情况使用字节流 2. IO异常的处理 JDK7前处理 之前的入门练习我们一直把异常抛出而实际开发中并不能这样处理建议使用try...catch...finally 代码块处理异常部分代码使用演示 public class HandleException1 {public static void main(String[] args) {// 声明变量FileWriter fw null;try {//创建流对象fw new FileWriter(fw.txt);// 写出数据fw.write(我是程序员); //我是程序员} catch (IOException e) {e.printStackTrace();} finally {try {if (fw ! null) {fw.close();}} catch (IOException e) {e.printStackTrace();}}} }JDK7的处理 还可以使用JDK7优化后的try-with-resource 语句该语句确保了每个资源在语句结束时关闭。所谓的资源resource是指在程序完成后必须关闭的对象。 格式 try (创建流对象语句如果多个,使用;隔开) {// 读写数据 } catch (IOException e) {e.printStackTrace(); }代码使用演示 public class HandleException2 {public static void main(String[] args) {// 创建流对象try ( FileWriter fw new FileWriter(fw.txt); ) {// 写出数据fw.write(我是程序员); //我是程序员} catch (IOException e) {e.printStackTrace();}} }JDK9的改进 JDK9中try-with-resource 的改进对于引入对象的方式支持的更加简洁。被引入的对象同样可以自动关闭无需手动close我们来了解一下格式。 改进前格式 // 被final修饰的对象 final Resource resource1 new Resource(resource1); // 普通对象 Resource resource2 new Resource(resource2); // 引入方式创建新的变量保存 try (Resource r1 resource1;Resource r2 resource2) {// 使用对象 }改进后格式 // 被final修饰的对象 final Resource resource1 new Resource(resource1); // 普通对象 Resource resource2 new Resource(resource2);// 引入方式直接引入 try (resource1; resource2) {// 使用对象 }改进后代码使用演示 public class TryDemo {public static void main(String[] args) throws IOException {// 创建流对象final FileReader fr new FileReader(in.txt);FileWriter fw new FileWriter(out.txt);// 引入到try中try (fr; fw) {// 定义变量int b;// 读取数据while ((b fr.read())!-1) {// 写出数据fw.write(b);}} catch (IOException e) {e.printStackTrace();}} }3. 综合练习 练习1拷贝文件夹 public class Test01 {public static void main(String[] args) throws IOException {//拷贝一个文件夹考虑子文件夹//1.创建对象表示数据源File src new File(D:\\aaa\\src);//2.创建对象表示目的地File dest new File(D:\\aaa\\dest);//3.调用方法开始拷贝copydir(src,dest);}/** 作用拷贝文件夹* 参数一数据源* 参数二目的地** */private static void copydir(File src, File dest) throws IOException {dest.mkdirs();//递归//1.进入数据源File[] files src.listFiles();//2.遍历数组for (File file : files) {if(file.isFile()){//3.判断文件拷贝FileInputStream fis new FileInputStream(file);FileOutputStream fos new FileOutputStream(new File(dest,file.getName()));byte[] bytes new byte[1024];int len;while((len fis.read(bytes)) ! -1){fos.write(bytes,0,len);}fos.close();fis.close();}else {//4.判断文件夹递归copydir(file, new File(dest,file.getName()));}}} } 练习2文件加密 public class Test02 {public static void main(String[] args) throws IOException {/*为了保证文件的安全性就需要对原始文件进行加密存储再使用的时候再对其进行解密处理。加密原理对原始文件中的每一个字节数据进行更改然后将更改以后的数据存储到新的文件中。解密原理读取加密之后的文件按照加密的规则反向操作变成原始文件。^ : 异或两边相同false两边不同true0false1true100:110010010: 10101100100^ 0001010__________1101110^ 0001010__________1100100*/}public static void encryptionAndReduction(File src, File dest) throws IOException {FileInputStream fis new FileInputStream(src);FileOutputStream fos new FileOutputStream(dest);int b;while ((b fis.read()) ! -1) {fos.write(b ^ 2);}//4.释放资源fos.close();fis.close();}} 练习3数字排序 文本文件中有以下的数据 2-1-9-4-7-8 将文件中的数据进行排序变成以下的数据 1-2-4-7-8-9 实现方式一 public class Test03 {public static void main(String[] args) throws IOException {/*文本文件中有以下的数据2-1-9-4-7-8将文件中的数据进行排序变成以下的数据1-2-4-7-8-9*///1.读取数据FileReader fr new FileReader(myio\\a.txt);StringBuilder sb new StringBuilder();int ch;while((ch fr.read()) ! -1){sb.append((char)ch);}fr.close();System.out.println(sb);//2.排序String str sb.toString();String[] arrStr str.split(-);//2-1-9-4-7-8ArrayListInteger list new ArrayList();for (String s : arrStr) {int i Integer.parseInt(s);list.add(i);}Collections.sort(list);System.out.println(list);//3.写出FileWriter fw new FileWriter(myio\\a.txt);for (int i 0; i list.size(); i) {if(i list.size() - 1){fw.write(list.get(i) );}else{fw.write(list.get(i) -);}}fw.close();} }实现方式二 public class Test04 {public static void main(String[] args) throws IOException {/*文本文件中有以下的数据2-1-9-4-7-8将文件中的数据进行排序变成以下的数据1-2-4-7-8-9细节1文件中的数据不要换行细节2:bom头*///1.读取数据FileReader fr new FileReader(myio\\a.txt);StringBuilder sb new StringBuilder();int ch;while((ch fr.read()) ! -1){sb.append((char)ch);}fr.close();System.out.println(sb);//2.排序Integer[] arr Arrays.stream(sb.toString().split(-)).map(Integer::parseInt).sorted().toArray(Integer[]::new);//3.写出FileWriter fw new FileWriter(myio\\a.txt);String s Arrays.toString(arr).replace(, ,-);String result s.substring(1, s.length() - 1);fw.write(result);fw.close();} }后记 美好的一天到此结束下次继续努力欲知后续请看下回分解写作不易感谢大家的支持
http://www.w-s-a.com/news/113950/

相关文章:

  • 网站后台策划书破解版手游app平台
  • 宿迁网站建设介绍公司wordpress 文章 分类 页面
  • 建设通同类网站网站设计公司种类
  • 台州专业做网站网站可以个人做吗
  • 个人logo在线生成免费乐陵德州seo公司
  • 网站回答问题app怎么做专业定制网红柴火灶
  • 网站做的最好的公司行业网址大全
  • 内网怎么做网站服务器seo统计
  • 丽水市企业网站建设 微信营销 影视拍摄计算机专业吃香吗
  • 龙岗做网站公司哪家好找到做网站的公司
  • 网站图片alt属性wordpress 自定义栏目 调用
  • 怎样建网站最快广州网站建设工程
  • iis7 网站404错误信息12306网站很难做吗
  • 网站建设600元包公司设计图片大全
  • 网站建设费用怎么做分录做校园网站代码
  • 网站改版做重定向福州网站建设思企
  • 网站建设全流程企业形象网站开发业务范畴
  • wordpress无法查看站点西安优秀高端网站建设服务商
  • 固始网站制作熟悉免费的网络营销方式
  • 做网站到a5卖站赚钱搜索引擎优化代理
  • 沈阳网站建设包括win10优化
  • 做百度手机网站点击软网站seo优化徐州百度网络
  • 徐州专业网站制作标志设计作业
  • 自己可以做网站空间吗海天建设集团有限公司网站
  • 教学督导网站建设报告aspcms网站图片不显示
  • 网站开发公司成本是什么门户网站宣传方案
  • 上海 企业网站建设网站怎么开通微信支付
  • 饮料网站建设wordpress主题猫
  • 网站建设需要编码不有没有专门的网站做品牌授权的
  • 做爰在线网站免费空间列表