文件路径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. JS笔记一:动态修改css样式

    ---恢复内容开始--- 最近在学习CSS/JS的样式,两个合学习一起学习,加深JS的书写和了解. 一.通过Javasript修改图片大小 通过函数来传递图片id,height,width,使用doc ...

  2. 浮点数的陷阱--double i != 10 基本都是对的,不管怎么赋值

    #include <stdio.h>int main(){    double i;    for(i = 10; i != 10, i < 12; i += 0.1)       ...

  3. 自己实现的数据表格控件(dataTable),支持自定义样式和标题数据、ajax等各种自定义设置以及分页自定义

    一.前言 也没什么好说的嘛,用了蛮多github上开源的能够实现dataTable功能的表格插件,不过都默认绑定样式啊,数据格式也设定的比较死,所以忍不住自己实现了一个简单的可自定义样式和自定义数据返 ...

  4. Linux之grep及正则表达式

    grep简介 grep 是一种强大的文本搜索工具,它能使用正则表达式搜索文本,并把匹配的行打印出来.通常grep有三种版本grep.egrep(等同于grep -E)和fgrep.egrep为扩展的g ...

  5. (转)AJax跨域:No 'Access-Control-Allow-Origin' header is present on the requested resource

    在本地用ajax跨域访问请求时报错: No 'Access-Control-Allow-Origin' header is present on the requested resource. Ori ...

  6. 回味Python2.7——笔记4

    一.Python 标准库概览 1.操作系统接口 os 模块提供了很多与操作系统交互的函数: >>> import os >>> os.getcwd() # Retu ...

  7. (转)java中/r与/n还有/r/n的区别

    场景:在学习spring实战,以及工作中进行写文件时候,经常遇到java中的换行问题,发现有的书上的介绍和实际使用并不一致.现在才算是搞清楚! 通过文本对比,断言应该返回正确的结果!但是事与愿违,最终 ...

  8. foreach是怎么实现遍历的

    using System; using System.Collections; using System.Collections.Generic; using System.Linq; using S ...

  9. 【整理】01. Fiddler 杂记

    抓手机包步骤: Tools -- Fiddler Options -- Connections (默认)Fiddler listens on port:8888 (勾选)Allow remote co ...

  10. 头文件string.h里的函数

    .strcpy 函数名: stpcpy 功 能: 拷贝一个字符串到另一个 用 法: char *stpcpy(char *destin, char *source); 程序例: #include &l ...