文件编码  字符 ——》字节  (编码 encode)           字节 ——》 字符(解码 decode)


节点流  处理流

package cn.dym;import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.InputStream;/*** 1.创建流* 2.选择流* 3.操作* 4.释放资源* @author Administrator**/
public class IOTest01 {public static void main(String[] args) {//1.创建源File src=new File("abc.txt");//2.选择流try {InputStream is=new FileInputStream(src);//3.操作(读取)int data1=is.read();  //第一个数据 hint data2=is.read();  //第二个数据 eint data3=is.read();  //第三个数据 lint data4=is.read();  //第四个数据 //不是数据,文件末尾返回-1System.out.println((char)data1);System.out.println((char)data2);System.out.println((char)data3);System.out.println(data4);//4.释放资源is.close();} catch (FileNotFoundException e) {// TODO Auto-generated catch blocke.printStackTrace();} catch (IOException e) {// TODO Auto-generated catch blocke.printStackTrace();}}
}

上面的写法不好,标准的写法如下:

package cn.dym;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.InputStream;
/*** 标准的写法* 1.创建流* 2.选择流* 3.操作* 4.释放资源* @author Administrator**/
public class IOTest02 {public static void main(String[] args) {//1.创建源File src=new File("abc.txt");//2.选择流InputStream is=null;try {is=new FileInputStream(src);//3.操作(读取)int temp;while((temp=is.read())!=-1) {System.out.print((char)temp);}} catch (FileNotFoundException e) {// TODO Auto-generated catch blocke.printStackTrace();} catch (IOException e) {// TODO Auto-generated catch blocke.printStackTrace();}finally {//4.释放资源try {if(null!=is) {is.close();}      } catch (IOException e) {// TODO Auto-generated catch blocke.printStackTrace();}}}
}


分段读取

package cn.dym;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.InputStream;
/*** 分段读取* 1.创建流* 2.选择流* 3.操作* 4.释放资源* @author Administrator**/
public class IOTest03 {public static void main(String[] args) {//1.创建源File src=new File("abc.txt");//2.选择流InputStream is=null;try {is=new FileInputStream(src);//3.操作(分段读取)byte[] flush=new byte[1024]; //缓冲容器int len=-1;while((len=is.read(flush))!=-1) {// 字节数组 ————》 字符串 (解码)String str=new String(flush,0,len);System.out.println(str);}} catch (FileNotFoundException e) {// TODO Auto-generated catch blocke.printStackTrace();} catch (IOException e) {// TODO Auto-generated catch blocke.printStackTrace();}finally {//4.释放资源try {if(null!=is) {is.close();}        } catch (IOException e) {// TODO Auto-generated catch blocke.printStackTrace();}}}
}


字节输出流 —— 文件字节输出流

package cn.dym;import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.OutputStream;/*** 文件字节输出流* 1.创建源* 2.选择流* 3.操作(写出内容)* 4.释放资源* @author Administrator**/
public class IOTest04 {public static void main(String [] args) {
//      1.创建源File dest=new File("dest.txt");
//      2.选择流OutputStream os=null;try{//os=new FileOutputStream(dest,true); //直接在文件中追加//os=new FileOutputStream(dest,false);  // 先删除文件原来的内容,在把新的内容写进文件中os=new FileOutputStream(dest,true);// 3.操作(写出内容)String msg="IO is so easy\r\n";byte[] datas=msg.getBytes();  // 字符串——》字节数组(编码)os.write(datas, 0, datas.length);           os.flush();} catch (FileNotFoundException e) {// TODO Auto-generated catch blocke.printStackTrace();} catch (IOException e) {// TODO Auto-generated catch blocke.printStackTrace();}finally {//4.释放资源if(null!=os) {try {os.close();} catch (IOException e) {// TODO Auto-generated catch blocke.printStackTrace();}}}      }
}


文件的拷贝

package cn.dym;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
/*** 文件拷贝:文件字节输入、输出流*/
public class Copy {public static void main(String[] args) {copy("D:/java/workspace/IO_study02/src/cn/dym/Copy.java","copy.txt");}/*** 文件的拷贝 * @param srcPath* @param destPath*/public static void copy(String srcPath,String destPath) {//1、创建源File src = new File(srcPath); //源头File dest = new File(destPath);//目的地//2、选择流InputStream  is =null;OutputStream os =null;try {is =new FileInputStream(src);os = new FileOutputStream(dest);      //3、操作 (分段读取)byte[] flush = new byte[1024]; //缓冲容器int len = -1; //接收长度while((len=is.read(flush))!=-1) {os.write(flush,0,len); //分段写出}           os.flush();}catch(FileNotFoundException e) {        e.printStackTrace();}catch (IOException e) {e.printStackTrace();}finally{//4、释放资源 分别关闭 先打开的后关闭try {if (null != os) {os.close();} } catch (IOException e) {e.printStackTrace();}try {if(null!=is) {is.close();}} catch (IOException e) {e.printStackTrace();}}}
}

Java的知识点28——文件编码、IO流的实例相关推荐

  1. Java面试知识点:File、IO流

    问题:Java面试知识点:File.IO流 答案: 1.File listFiles方法注意事项: • 当调用者不存在时,返回null • 当调用者是一个文件时,返回null • 当调用者是一个空文件 ...

  2. 2018.4.13 用java配置/生成Xml文件 结合IO流知识点

    自己创建本地文件Hello.txt 里面有数据 小明/23/增城/广东 小花/12/浦东/上海 StudentManager.java package com.lanqiao.dmeo7;import ...

  3. Java基础(七)——文件、IO流

    文章目录 文件.IO流 1 流 2 BIO 3 NIO 4 AIO 文件.IO流 1 流 InputStream/Reader:所有的输入流的基类,前者是字节输入流,后者是字符输入流 OutputSt ...

  4. Java中的File类和IO流

    Java中的File类和IO流 File类 java.io.File 类是文件和目录路径名的抽象表示,主要用于文件和目录的创建.查找和删除等操作. File的分隔符 import java.io.Fi ...

  5. 『Java』文件与IO流

    1. File类 java.io.File 类是文件和目录路径名的抽象表示,主要用于文件和目录的创建.查找和删除等操作. 实际存不存在无所谓,这里只是创建一个抽象表示 1.1 构造方法 下面示例项目根 ...

  6. java 写入文件流_Java实现文件写入——IO流

    输入输出的重要性: 输入和输出功能是Java对程序处理数据能力的提高,Java以流的形式处理数据.流是一组有序的数据序列,根据操作的类型,分为输入流和输出流. 程序从输入流读取数据,向输出流写入数据. ...

  7. java之文件与IO流及序列化

    目录 文件 java操作文件原理 File类 封装文件为File类对象 常用文件方法 File对象对文件进行操作 File对象对目录进行操作 IO流 IO流的分类 节点流与处理流 处理流特点 字节流与 ...

  8. java文件流写入文件_JAVA IO流编程 实现文件的写入、写出以及拷贝

    一.流的概念 流:数据在数据源(文件)和程序(内存)之间经历的路径. 输入流:数据从数据源(文件)到程序(内存)的路径. 输出流:数据从程序(内存)到数据源(文件)的路径. 以内存为参照,如果数据向内 ...

  9. Java实现文件写入——IO流(输入输出流详解)

    输入输出的重要性: 输入和输出功能是Java对程序处理数据能力的提高,Java以流的形式处理数据.流是一组有序的数据序列,根据操作的类型,分为输入流和输出流. 程序从输入流读取数据,向输出流写入数据. ...

最新文章

  1. Web开发常见的软件架构
  2. $NF和 NF的区别
  3. python将列表横着输出来
  4. Python中的map和reduce函数简介
  5. Python Django HttpResponse响应对象
  6. 【Python】RotatingFileHandler:log日志文件自定义大小+滚动输出
  7. OSPF动态路由协议入门简介
  8. 【安卓开发】Android初级开发(okhttp3发送带header与带参数的GET请求)
  9. 95-872-060-源码-CEP-匹配事件提取
  10. 中国碳酸锰(CAS+598-62-9)市场趋势报告、技术动态创新及市场预测
  11. matlab preparets,请问吧里有大神做过MATLAB时间序列神经网络(NARX)吗?
  12. java adt官网下载_android adt下载
  13. 数据结构之SWUSTOJ1038: 顺序表中重复数据的删除
  14. 微信小程序图片懒加载插件
  15. Codeforces Round #643 (Div. 2)-C. Count Triangles(差分,前缀和)(避免标题重复率的小括号)
  16. jboot-admin 搭建过程
  17. 荣耀首批老机型今日下午 4 点开启鸿蒙 HarmonyOS 2 内测
  18. 怎么觉得自己越来越好看了
  19. iOS QRcode识别及相册图片二维码读取识别
  20. 计算机桌面用什么实木板好,这才叫实木桌面,教你怎么做出来,拿去不谢

热门文章

  1. 谷歌火狐浏览器限制的端口
  2. java selenium后报错Element not found in the cache元素定位要重新赋值之前的定义
  3. ios 三种颜色画笔和橡皮擦的画图板demo
  4. visual studio 2005占用cpu100% -_-...
  5. 专访蒋宇捷:技术管理者应具备哪些能力?
  6. JAVA-接口和抽象类的区别
  7. 360首席安全官谭晓生宣布离职
  8. 如何修改MySQL8.0.5以上版本root密码
  9. 准备好了?测试人员迟早会被要求测试包含区块链技术的解决方案
  10. WMI-Win32_baseboard 主板参数