文件路径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. 利用base64函数,对文件进行转码加密

    设计此种编码是为了使二进制数据可以通过非纯 8-bit 的传输层传输,例如电子邮件的内容就是通过base64转码后传输的.Base64-encoded后, 数据要比原始数据多占用 33% 左右的空间. ...

  2. 关于abp中使用的sweetalert对话框组件的confirm确认对话框中的一个坑

    今天修改了一个功能,限制删除用户,在删除的时候不满足条件的时候提示用户原因,使用的sweet alert组件. abp框架前端集成了sweet alert 对http请求的error做了全局处理,我在 ...

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

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

  4. NLP —— 图模型(二)条件随机场(Conditional random field,CRF)

    本文简单整理了以下内容: (一)马尔可夫随机场(Markov random field,无向图模型)简单回顾 (二)条件随机场(Conditional random field,CRF) 这篇写的非常 ...

  5. java内存区域——深入理解JVM读书笔记

    本内容由<深入理解java虚拟机>的部分读书笔记整理而成,本读者计划连载. 通过如下图和文字介绍来了解几个运行时数据区的概念. 方法区:它是各个线程共享的区域,用于内存已被VM加载的类信息 ...

  6. spring 的单例模式

    singleton---单例模式 单例模式,在spring 中其实是scope(作用范围)参数的缺省设定值每个bean定义只生成一个对象实例,每次getBean请求获得的都是此实例 单例模式分为饿汉模 ...

  7. (转)Spring中Singleton模式的线程安全

    不知道哪里的文章,总结性还是比较好的.但是代码凌乱,有的还没有图.如果找到原文了可以进行替换! spring中的单例 spring中管理的bean实例默认情况下是单例的[sigleton类型],就还有 ...

  8. MQ通道搭建以及连通性检查

    场景:项目开发中使用的mq中间件一直不太熟悉,遇到问题就需要问人,公司的同事也不怎么爱搭理,弄的好受伤!不熟悉的时候只是感觉好难,逼的没办法,好好研究下,发现里面的过程也没想象中的难, 经过一番研究, ...

  9. 机器学习(3)-Tensorflow安装与测试

    安装.# Ubuntu/Linux 64-bit $ sudo apt-get install python-pip python-dev # Ubuntu/Linux 64-bit, CPU onl ...

  10. ETL作业调度工具TASKCTL软件安装乱码问题解决

    前两天在安装批量作业调度软件TASKCTL4.5时,将安装介质解压出来后执行安装脚本时,一安装就出现下图乱码. 然后就度娘了一下,发现安装遇到乱码的人还挺多的,大多数解答都说TASKCTL软件里面很多 ...