文件路径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. Ubuntu tty中文字符乱码

    默认的tty只能显示一个字节,我们可以用setfont命令去改tty字体,但仅仅局限在一个字节内,不支持UTF-8多字节,所以我们就没办法使用汉字.但是我们可以使用FbTerm啊!FbTerm是支持中 ...

  2. nyoj_3:多边形重心问题(计算几何)

    基础的计算几何 多边形的n个顶点按*时针方向给出 由任意n边形可分解为n-2个三角形,各三角形面积面积与重心易得,故有各三角形的面积及重心 用重心公式可求得多边形的面积与重心 题目链接: http:/ ...

  3. (转)Linux下增加交换分区的大小

    场景:最近在Linux环境安装ELK相关软件时候发现机器特别的卡,所以就查看了Linux机器的内存使用情况,发现是内存和交换分区空间太小了. 对于虚拟机中的内存问题,可以直接通过更改虚拟机的硬件进行解 ...

  4. CocoaPods私有库管理

    简介: 前一篇文章已经介绍过如果安装使用CocoaPods,下面将要介绍如果通过CocoaPods和git来维护我们私有的库. 个人或公司在开发过程中,会积累很多可以复用的代码包,有些我们不想开源,又 ...

  5. 【JAVASCRIPT】React学习-如何构建一个组件

    摘要 react 学习包括几个部分: 文本渲染 JSX 语法 组件化思想 数据流 组件化思想 组件就是 UI + UI 交互逻辑,组件有三个常规map , 分别为state 状态 . props 数据 ...

  6. zookeeper单机模式安装

    zookeeper单机模式安装 更多文章:http://blogxinxiucan.sh1.newtouch.com/2017/07/26/zookeeper单机模式安装/ 下载zookeeper u ...

  7. Java基础之接口与抽象类及多态、内部类

    final关键字 被其修饰的类,不能被继承. 被其修饰的方法,不能被覆盖. 被其修饰的变量,是一个常量,不能被修改,所以定义时必须初始化(和C++的const类似). 一般有final,会搭配stat ...

  8. 36. leetcode 415. Add Strings

    415. Add Strings Given two non-negative integers num1 and num2 represented as string, return the sum ...

  9. hdu2108 Shape of HDU 极角排序判断多边形

    Problem Description 话说上回讲到海东集团推选老总的事情,最终的结果是XHD以微弱优势当选,从此以后,"徐队"的称呼逐渐被"徐总"所取代,海东 ...

  10. ue4 C++ 编程 通过三个点的位置算出夹角

    const FVector2D& Pt1 = 第一个点的位置; const FVector2D& Pt2 = 第二个点的位置; float EdgeRadians1 = FMath:: ...