package IObasics;
import java.io.FileWriter;
import java.io.IOException;

/*IO流
 *    通过数据流、序列化和文件系统提供系统输入和输出。
 *    文件上传,复制文件,下载文件
 *    输出流:
 *        java.io
        类 FileWriter
        构造方法详细信息 :
            public FileWriter(String fileName)
                       throws IOException根据给定的文件名构造一个 FileWriter 对象。
            参数:
            fileName - 一个字符串,表示与系统有关的文件名。
            抛出:
            IOException - 如果指定文件存在,但它是一个目录,而不是一个常规文件;或者该文件不存在,但无法创建它;抑或因为其他某些原因而无法打开它

            public FileWriter(String fileName,
                  boolean append)
            throws IOException根据给定的文件名以及指示是否附加写入数据的 boolean 值来构造 FileWriter 对象。
            参数:
            fileName - 一个字符串,表示与系统有关的文件名。
            append - 一个 boolean 值,如果为 true,则将数据写入文件末尾处,而不是写入文件开始处。
            抛出:
            IOException - 如果指定文件存在,但它是一个目录,而不是一个常规文件;或者该文件不存在,但无法创建它;抑或因为其他某些原因而无法打开它
 *
 *
 *            方法:
                从类 java.io.OutputStreamWriter 继承的方法
                 void close()
                  关闭此流,但要先刷新它。
                 void flush()
                          刷新该流的缓冲。
                 String getEncoding()
                          返回此流使用的字符编码的名称。
                 void write(char[] cbuf, int off, int len)
                          写入字符数组的某一部分。
                 void write(int c)
                          写入单个字符。
                 void write(String str, int off, int len)
                          写入字符串的某一部分。 

                  从类 java.io.Writer 继承的方法
                   void write(char[] cbuf)
                       写入字符数组。
                     void write(int c)
                       写入单个字符。
                append, append, append, write, write
                  从类 java.lang.Object 继承的方法
                clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait 

 *输入流:
 *
 **/

/*需求:  在文件中写数据
        写数据-输出流
*/
public class IO_basics_filerwriter {
    public static void main(String[] args) throws IOException {
        FileWriter fw=new FileWriter("d:\\test.txt");
        /*输出流对象做了那些事情:
            1.调用系统资源创建了一个文件
            2.创建输出流对象
            3.把输出流对象指向文件*/
            /*操作数据的方法
             * close()  刷新缓冲区  流对象还可以使用
             * flush()    先刷新缓冲区,然后通知系统释放资源  流对象不可以使用
             *
             *
             *
             * */
            fw.write("IO流练习");
            fw.write("java");
            fw.flush();/*刷新内存缓冲区*/
            fw.close();/*释放资源*/

    }
}

package IObasics;

import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
import java.util.ArrayList;

/*java.io
 *     字符缓冲流类
 *  BufferedWriter:对字符得高效输出
 *  BufferReader:对字符得高效输入
 *
 *
 * */
public class IO_basics_bufferwriter {
    public static void main(String[] args) throws IOException {
    /*    BufferedWriter bw=new BufferedWriter(new FileWriter("fw.txt"));
        bw.write("hello");
        BufferedReader br=new BufferedReader(new FileReader("fr.txt"));
        int ch;
        while((ch=br.read())!=-1){
            System.out.println((char)ch);
        }
        bw.close();
        br.close();*/
        /*copy_one("fr.txt","fw.txt");*/
        /*newline();*/
        /*readline();*/
        /*copy_two("fr.txt","fw.txt");*/
        collection_to_txt("fr.txt");
    }
    /*文本复制方法*/
    public static void copy_one(String filename_one,String filename_two) throws IOException {
        BufferedReader br=new BufferedReader(new FileReader(filename_one));
        BufferedWriter bw=new BufferedWriter(new FileWriter(filename_two));
        int ch;
        while((ch=br.read())!=-1) {
            bw.write(ch);
        }
        bw.close();
        br.close();
    }
    /*字符缓冲流的特殊功能
     * newline():newline 是相当于换行符   windows的换行符是 \r\n  mac\n  linux\r*/
    public static void newline() throws IOException {
        BufferedWriter bw=new BufferedWriter(new FileWriter("fw.txt"));
        for (int i = 0; i <10; i++) {
        bw.write("hello wolrd"+i);
        bw.newLine();
        }
        bw.close();
    }
     /*readline():redaline 一次读取一行 但是不读取换行符*/
    public static void readline() throws IOException {
        BufferedReader br=new BufferedReader(new FileReader("fw.txt"));
        String line;
        while((line=br.readLine())!=null) {
            System.out.println(line);
        }
        br.close();
    }
    /*利用特殊功能复制文本文件*/
    public static void copy_two(String filename_one,String filename_two) throws IOException {
        BufferedReader br=new BufferedReader(new FileReader(filename_one));
        BufferedWriter bw=new BufferedWriter(new FileWriter(filename_two));
        String line;
        while((line=br.readLine())!=null) {
            bw.write(line);
            bw.newLine();
        }
        bw.close();
        br.close();
    }
    /*把集合中的数据写到文本文件*/
    public static void collection_to_txt(String filename_two) throws IOException {
        ArrayList<String> ar=new ArrayList<String>();
        for (int i = 0; i < 10; i++) {
            ar.add("a");
        }
        BufferedWriter bw=new BufferedWriter(new FileWriter(filename_two));
        for (int i = 0; i < ar.size(); i++) {
            String arr=String.valueOf(ar.get(i));
            bw.write(arr);
        }
        bw.close();
    }
}

Java基础学习-IO流的更多相关文章

  1. java基础之IO流(二)之字符流

    java基础之IO流(二)之字符流 字符流,顾名思义,它是以字符为数据处理单元的流对象,那么字符流和字节流之间的关系又是如何呢? 字符流可以理解为是字节流+字符编码集额一种封装与抽象,专门设计用来读写 ...

  2. java基础之IO流(一)字节流

    java基础之IO流(一)之字节流 IO流体系太大,涉及到的各种流对象,我觉得很有必要总结一下. 那什么是IO流,IO代表Input.Output,而流就是原始数据源与目标媒介的数据传输的一种抽象.典 ...

  3. Java基础之IO流整理

    Java基础之IO流 Java IO流使用装饰器设计模式,因此如果不能理清其中的关系的话很容易把各种流搞混,此文将简单的几个流进行梳理,后序遇见新的流会继续更新(本文下方还附有xmind文件链接) 抽 ...

  4. Java基础之IO流学习总结

    Java流操作有关的类或接口: Java流类图结构: 流的概念和作用 流是一组有顺序的,有起点和终点的字节集合,是对数据传输的总称或抽象.即数据在两设备间的传输称为流,流的本质是数据传输,根据数据传输 ...

  5. java基础之 IO流

    javaIO流   IO流 : (input  output) 输入输出流 :输入 :将文件读到内存中 输出:将文件从内存输出到其他地方.   IO技术的作用:主要就是解决设备和设备之间的数据传输问题 ...

  6. 【java基础】]IO流

    IO流 概念: 流的概念源于unix中管道(pipe)的概念,在unix中,管道是一条不间断的字节流,用来实现程序或进程间的通信,或读写外围设备,外部文件等 一个流,一定能够会有源和去向(目的地),他 ...

  7. java基础44 IO流技术(输出字节流/缓冲输出字节流)和异常处理

    一.输出字节流 输出字节流的体系: -------| OutputStream:所有输出字节流的基类(抽象类) ----------| FileOutputStream:向文件输出数据的输出字节流(把 ...

  8. java基础之io流总结一:io流概述

    IO流概念: 流是一组有顺序的,有起点和终点的字节集合,是对数据传输的总称或抽象.io流是实现输入和输出的基础,可以方便的实现数据的输入和输出操作. IO流的分类: 根据处理数据类型的不同分为:字符流 ...

  9. JAVA基础学习day21--IO流三-File、Properties、PrintWriter与合并、分割流

    一.File 1.1.File概述 文件和目录路径名的抽象表示形式. 用户界面和操作系统使用与系统相关的路径名字符串 来命名文件和目录.此类呈现分层路径名的一个抽象的.与系统无关的视图.抽象路径名 有 ...

随机推荐

  1. Spark 1.5新特性介绍

    一.DataFrame执行后端优化(Tungsten第一阶段) DataFrame可以说是整个Spark项目最核心的部分,在1.5这个开发周期内最大的变化就是Tungsten项目的第一阶段已经完成.主 ...

  2. iOS学习之七牛云存储应用

    前言 七牛云存储,是专为移动时代开发者打造的数据管理平台,为互联网网站和移动App提供数据的在线托管.传输加速以及图片.音视频等富媒体的云处理服务. 七牛云官网http://www.qiniu.com ...

  3. day3-python-文件操作(2)

    本文内容涉及python中的os模块和os.path模块的常用操作,这两个模块提供了与平台和操作系统无关的文件系统访问方法.os模块负责大部分的文件系统操作,包括:删除文件.重命名文件.遍历目录树等: ...

  4. python数据类型及其操作

    一.数字 常用类型:int,float age = 10  # int型 salary = 3000.5  # float型 进制: 二进制: 11 = 1*21 + 1*20 = 3 八进制: 11 ...

  5. ASP.NET4 与 VS2010 Web 开发页面服务改进

    转:http://blog.163.com/kele_lipeng/blog/static/81345278201132754729336/ 作者:朱先忠 本文将接着上一篇 ASP.NET4与VS20 ...

  6. redis---在CentOS6.5下安装与配置

    本文详细介绍redis单机单实例安装与配置,服务及开机自启动.如有不对的地方,欢迎大家拍砖o(∩_∩)o (以下配置基于CentOS release 6.5 Final, redis版本3.0.2 [ ...

  7. Linux 初始化之 Systemd机制

    systemd是Linux下的一种init软件,由Lennart Poettering带头开发,其开发目标是提供更优秀的框架以表示系统服务间的依赖关系,并依此实现系统初始化时服务的并行启动,同时达到降 ...

  8. po dto vo bo

    DozerBeanMapper是JavaBean的映射工具,可以进行对象之间相同属性名赋值     关于PO.DTO.VO在分层模型之间的关系:首先在持久层由DAO访问数据库将数据对象封装成PO,然后 ...

  9. List To Json

    命名空间 using Newtonsoft.Json; 实例代码 /// <summary> /// 将list集合转换为json /// </summary> /// < ...

  10. Java:判断字符串中包含某字符的个数

    Java:判断字符串中包含某字符的个数 JAVA中查询一个词在内容中出现的次数: public int getCount(String str,String key){ if(str == null ...