文件路径4种写法:
相对路径,相对当前而言,在当前路径下找:
String filePath = "temp01"; 
绝对路径:
String filePath = "D:\\course\\JavaProjects\\02-JavaSE\\chapter08\\temp01";//普通写法,需要用转义字符
String filePath = "D:/course/JavaProjects/02-JavaSE/chapter08/temp01";//反斜杠写法,windows系统下支持
        String filePath = "D:"+File.separator+"course"+File.separator+"JavaProjects"+File.separator+
                           "02-JavaSE"+File.separator+"chapter08"+File.separator+"temp01";//最标准写法:用系统相关默认名称分隔符
输入输出流标准写法:
        1、创建流对象:
              创建输入流对象会抛出FileNotFoundException异常,该异常可以细化处理
              创建输出流对象时若文件不存在则自动创建,默认为覆盖写入,如果要追加方式写入,在构造方法参数列表后加一个true
        2、进行读写操作:抛出IOException
        3、关闭流对象:抛出IOException
字符流和字节流:
        字节流可以用于所有文件
        字符流编程比较方便(可用readline方法),但只能用于纯文本文件
copy代码范例(字节流):
        FileInputStream fIn = null;
        FileOutputStream fOut = null;
        byte[] buff = new byte[1024];
        int temp = 0;
        try
        {
            //定义输入流对象,会抛出FileNotFoundException
            fIn = new FileInputStream("F://test//1.avi");
            //定义输出流对象,文件不存在则自动创建,如果要追加方式写入,在构造方法参数列表后加一个true
            fOut = new FileOutputStream("F://test//2.avi");
            //读写的操作
            while((temp = fIn.read(buff)) != -1)
            {
                fOut.write(buff, 0, temp);
            }
            fOut.flush();//为了保证数据完全写入硬盘,推荐用强制刷新写入
        }catch(FileNotFoundException e)//输入流抛出异常的细化处理
        {
            e.printStackTrace();
        }catch(IOException e)//读写操作的异常处理
        {
            e.printStackTrace();
        }finally//关闭流对象,写在finally语句块中确保一定执行
        {
            if(fIn!=null)//防止空指针异常
            {
                try
                {
                    fIn.close();
                }catch(IOException e)
                {
                    e.printStackTrace();
                }
            }
            if(fOut!=null)
            {
                try
                {
                    fOut.close();
                }catch(IOException e)
                {
                    e.printStackTrace();
                }
            }

}

copy不规范代码(字符流使用readline):
        BufferedReader br = new BufferedReader(new FileReader("Copy03.java"));
        BufferedWriter bw = new BufferedWriter(new FileWriter("c:/Copy03.java"));
        String temp = null;
        int count = 0;//用于防止在文件最后写一个换行符
        while(true)
        {
            count++;
            temp = br.readLine();
            if(temp==null)
            {
                break;
            }
            if(count>1)
            {
                bw.newLine();//如果不写换行符,文件不会换行
            }
            bw.write(temp);
        }
        bw.flush();
        br.close();

bw.close();

 
 
 
 

8.23.2 IO-输入输出规范代码的更多相关文章

  1. JAVA_SE基础——编码规范&代码编写规则

    这次我来给大家说明下编码规范&代码编写规则  ↓ 编码规范可以帮助程序员在编程时注意一些细节问题,提高程序的可读性,让程序员能够尽快地理解新的代码,并帮助大家编写出规范的利于维护的Java代码 ...

  2. PHP团队 编码规范 & 代码样式风格规范

    一.基本约定 1.源文件 (1).纯PHP代码源文件只使用 <?php 标签,省略关闭标签 ?> : (2).源文件中PHP代码的编码格式必须是无BOM的UTF-8格式: (3).使用 U ...

  3. linux io的cfq代码理解

    内核版本: 3.10内核. CFQ,即Completely Fair Queueing绝对公平调度器,原理是基于时间片的角度去保证公平,其实如果一台设备既有单队列,又有多队列,既有快速的NVME,又有 ...

  4. C++(四十六) — 异常处理机制、标准IO输入输出

    1.异常处理机制 一般来说,异常处理就是在程序运行时对异常进行检测和控制.而在C++ 中,使用 try-throw-catch模式进行异常处理的机制. #include<iostream> ...

  5. Java中23种设计模式(附代码样例)

    一.设计模式分类总体来说设计模式分为三大类:创建型模式,共五种:工厂方法模式.抽象工厂模式.单例模式.建造者模式.原型模式.结构型模式,共七种:适配器模式.装饰器模式.代理模式.外观模式.桥接模式.组 ...

  6. Java基础(十二)IO输入输出

    一.IO 概述 1.IO 概念 IO:I 代表 Input 输入:O 代表 Output 输出. Java 中 IO 是以流为基础进行输入输出,所有的数据被串行化(保存)写入输出流,或者从输入流读入. ...

  7. Python规范:代码规范要注意

    主要有以下两种代码规范 <8 号 Python 增强规范>(Python Enhacement Proposal #8),以下简称 PEP8: <Google Python 风格规范 ...

  8. 作业三 代码规范 代码复审 PSP

    1.是否需要有代码规范(5分) 对于是否需要有代码规范,请考虑下列论点并反驳/支持: 1这些规范都是官僚制度下产生的浪费大家的编程时间.影响人们开发效率, 浪费时间的东西. 反对.我并不认为代码规范都 ...

  9. 个人博客作业-Week2 (代码规范, 代码复审)

    代码规范: 1.这些规范都是官僚制度下产生的浪费大家的编程时间.影响人们开发效率, 浪费时间的东西. 编码规范它包含了代码格式,还包括了编码风格和其他规范,通常涉及:缩进.空格使用.Tab使用 注释. ...

随机推荐

  1. PHP+NGINX

    1. 下载php编译包/nginx编译包(建议先装nginx再装php, php编译包我用的是5.5.35) 2. 创建好安装目录(我的编译包放在/home下) mkdir -p /usr/local ...

  2. StrutsPreparedAndExcuteFilter与Interceptor

    filter详解 Filter种类(可以进行那些预处理) 用户授权的Filter:Filter负责检查用户请求,对用户访问权限的控制 日志Filter:详细记录某些特殊的用户请求. 负责解码的Filt ...

  3. 编写一个可配置的网页信息提取组件 (二)—— 优雅的.net core 配置系统

    引言 在上篇文章(http://www.cnblogs.com/lightluomeng/p/7212577.html)中,初步实现了一个可配置的网页信息分析组件.但是由于是奔着解决事情的目的去的,所 ...

  4. USB的包结构及包分类

    USB的传输总是低位在前,高位在后. USB的传输方向:从设备到主机的数据为输入:从主机到设备的数据叫做输出. 1. 包结构 以同步域开始,紧跟着一个包标识符PID(Packet Identifier ...

  5. Codeforces_617E: XOR and Favorite Number(莫队算法)

    题目链接 题意大致是说,给出一个长为n(n<=1e5)的数组,给定一个k(k<=1e6),给出m(m<=1e5)个询问,每组询问中回答 从a_l到a_r有多少个连续的子序列满足异或和 ...

  6. 可存放任意类型变量的动态数组--C语言实现

    之前在训练营的时候被要求用C语言实现一个可以存放任意类型数据的栈.现在尝试实现一个数组版本. 首先用到的结构体如下(接触了Win32编程所以长得有点像里面的那些类型): typedef struct ...

  7. CentOS 7.3.1611系统安装配置图解教程

    操作系统:CentOS 7.3.1611 IP地址:192.168.21.130 网关:192.168.21.2 DNS:8.8.8.8 8.8.4.4 备注: CentOS 7.x系列只有64位系统 ...

  8. C#中的ToString格式大全

    // C# 日期格式 DateTime dt = DateTime.Now; dt.ToString();//2005-11-5 13:21:25 dt.ToFileTime().ToString() ...

  9. nodeJS之域名DNS

    前面的话 本文将详细介绍域名解析模块DNS 工作原理 打开浏览器,在上方地址栏输入网址的那一刻,这个回车按了之后,发生了很多事情.首先,计算机只懂0和1,也就是说人类的字母网址计算机是不懂的,它只认识 ...

  10. vue+mockjs 模拟数据,实现前后端分离开发

    在项目中尝试了mockjs,mock数据,实现前后端分离开发. 关于mockjs,官网描述的是 1.前后端分离 2.不需要修改既有代码,就可以拦截 Ajax 请求,返回模拟的响应数据. 3.数据类型丰 ...