package com.io;

import java.io.File;
import java.io.IOException;

public class IoClass {
    
    /**
     * 1.什么是流?
     *         流是一组有序的数据序列,根据操作类型可以分为 输入流/输出流两种
     *         流提供了一条通道程序,可以使用这条通道把源种的字节序列送到目的地
     *
     * java由数据流处理输入/输出模式,程序从指向源的输入流种读取源种数据。源可以是文件,网络,压缩包等
     *
     * 输出流 指的是数据要到达的目的地,程序通过 向 输出流种写入数据,把数据信息传递到目的地。  输出流的目的  文件,网络,压缩包
     *
     *
     * 2.输入流     InputStream  字节输入流的抽象类,是所有的字节输入流的父类
     *
     * 3.输出流     OutStream   字节输入流的抽象类
     *
     *  4.File类
     *      File类是唯一代表磁盘文件本身的对象,通过File类里面的方法,实现创建,删除,重命名等操作。
     *  
     *  
     *
     *
     */
    
    public static void main(String[] args) {
        
            //文件的删除
            File file=new File("gg.txt");  //默认是在项目的根目录下面
            if(file.exists())  
            {
                file.delete();
                System.out.println("如果有了文件,就删除");
            }else
            {
                try {
                    file.createNewFile();
                    System.out.println("文件已经创建");
                } catch (IOException e) {
                    // TODO Auto-generated catch block
                    e.printStackTrace();
                }
            }
            
    }

}

2.文件的读取

package com.io;

import java.io.File;

/**
 * 文件的读取
 * @author chb
 *
 */
public class FileTest {
    
        public static void main(String[] args) {
            
            File  file=new File("gg.txt");
            
            if(file.exists())
            {
                String name=file.getName();
                System.out.println("文件的文字: "+name);
                
                boolean hidden=file.isHidden();
                System.out.println("是否是可以读文件:"+hidden);
            }else
            {
                System.out.println("没有该文件");
            }
        }

}
 
3.            //写入数据       //读取数据

package com.io;

import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;

public class FileOutput {
    
    public static void main(String[] args) {
        
                /**
                 * FileOutputStream为什么使用output输出流 来写入?
                 *
                 * 因为输出流指向的是数据要到达的目的地,程序通过向输出流中写 入数据  才可以传递到目的地。
                 */
            //写入数据
                File file=new File("gg.txt");  //创建文件对象
                
                //创建输出流对象
                try {
                    FileOutputStream out=new FileOutputStream(file);
                    //创建数组
                    byte bu[]="我爱你,爱着你,就像老鼠爱大米".getBytes();
                    out.write(bu);   //将数组中的信息写入到文件中
                    out.close();  //关闭流
                } catch (Exception e) {
                    System.out.println("失败");
                    e.printStackTrace();
                }
                
            /****************************************************************/
                
            //读取数据
                try {
                    
                    //创建输入流对象
                    FileInputStream input=new FileInputStream(file);
                    
                    byte b[]=new byte[1024];
                    
                    int len=input.read(b);
                    
                    //将文件中的信息输出
                    System.out.println("文件的信息是:"+ new String(b,0,len));
                    input.close();
                    
                } catch (Exception e) {
                    // TODO Auto-generated catch block
                    e.printStackTrace();
                }
                
    
    }

}

4.FileReader   /  FileWriter

/**
     * 1.为什么使用FileReader  FileWrite
     *
     *         使用FileOutputStream类向文件中写入数据,使用FileInputStream从文件中读取内容,缺点就是,这两个类,
     *         只提供对字节或者字节数组的读取方法,有时候会出现乱码
     *        
     *        所以使用FileReader/FileWrite  字符流
     *         
     *
     *
     *
     */

package com.io;

import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;

public class Student {
    
        /**
         * 创建带缓存的io
         *
         */
    
    public static void main(String[] args) {
        
        //**********************写入*******************************
            String s[]={"你好","我不好","我真的不好"};
            
            File file=new File("gg2.txt");
            
            try {
                FileWriter fw=new FileWriter(file);
                //创建BufferedWrier对象
                BufferedWriter bw=new BufferedWriter(fw);
                
                for(int i=0;i<s.length;i++)
                {
                    bw.write(s[i]);//把内容添加到 BufferedWriter
                    bw.newLine();    //将数组中的单个元素一单行的形式写入文件
                    
                }
                
                bw.close();fw.close();
            } catch (IOException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }
            
            
            //**********************读取*******************************
            
            try {
                FileReader fr=new FileReader("gg2.txt");
                //创建BufferedReader
                BufferedReader br=new BufferedReader(fr);
                
                String str=null;
                int i=0;
                
                //如果文件中的文本行数不为null,则开始循环
                while((str=br.readLine())!=null)
                {
                    i++;//将变量加加  
                    System.out.println("第一行:"+i+"  行"+str);
                }
                br.close();fr.close();
            } catch ( Exception e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }
        
    }

}

java基础讲解14-----IO的更多相关文章

  1. Java基础系列8——IO流超详细总结

    该系列博文会告诉你如何从入门到进阶,一步步地学习Java基础知识,并上手进行实战,接着了解每个Java知识点背后的实现原理,更完整地了解整个Java技术体系,形成自己的知识框架. 在初学Java时,I ...

  2. 夯实Java基础系列14:深入理解Java枚举类

    目录 初探枚举类 枚举类-语法 枚举类的具体使用 使用枚举类的注意事项 枚举类的实现原理 枚举类实战 实战一无参 实战二有一参 实战三有两参 枚举类总结 枚举 API 总结 参考文章 微信公众号 Ja ...

  3. Java基础教程:IO流与文件基础

    Java:IO流与文件基础 说明: 本章内容将会持续更新,大家可以关注一下并给我提供建议,谢谢啦. 走进流 什么是流 流:从源到目的地的字节的有序序列. 在Java中,可以从其中读取一个字节序列的对象 ...

  4. 图学java基础篇之IO

    java io体系 如图可以看出,java的io按照包来划分的话可以分为三大块:io.nio.aio,但是从使用角度来看,这三块其实揉杂在一起的,下边我们先来概述下这三块: io:主要包含字符流和字节 ...

  5. Java基础之详谈IO流

    Java基础知识.IO流详细讲解.你所要的IO这里都有

  6. JAVA基础知识之IO——对象序列化

    对象序列化 Java对象序列化(Serialize)是指将Java对象写入IO流,反序列化(Deserilize)则是从IO流中恢复该Java对象. 对象序列化将程序运行时内存中的对象以字节码的方式保 ...

  7. JAVA基础知识之IO——Java IO体系及常用类

    Java IO体系 个人觉得可以用"字节流操作类和字符流操作类组成了Java IO体系"来高度概括Java IO体系. 借用几张网络图片来说明(图片来自 http://blog.c ...

  8. JAVA基础知识之IO——IO流(Stream)的概念

    Java IO 流 Java将不同的设备或载体(键盘.文件.网络.管道等)的输入输出数据统称为"流"(Stream),即JAVA的IO都是基于流的. JAVA传统的所有流类型类都包 ...

  9. java基础讲解08-----类和对象

    1.什么是面向对象? 面向对象设计的实质 就是对现实世界的对象进行建模操作. 现实的生活中,随处可见的一种事物就是对象,对象是事物存在的实体,通常我们将会对对象划分为两个部分,静态部分和动态部分.比如 ...

随机推荐

  1. 【map】【分解质因数】CDOJ1572 Espec1al Triple

    先把公比为1,即前项 中项 末项相同的统计出来.对每一类数C(n,3)即可. 然后我们发现,因为a1*a3=(a2)^2,所以a1和a3进行质因子分解之后,每一个质因子的指数的奇偶性必然相同,否则无法 ...

  2. 计算标准差 Exercise07_11

    import java.util.Scanner; /** * @author 冰樱梦 * 时间:2018年下半年 * 题目:计算标准差 * */ public class Exercise07_11 ...

  3. Alpha冲刺(6/10)——追光的人

    1.队友信息 队员学号 队员博客 221600219 小墨 https://www.cnblogs.com/hengyumo/ 221600240 真·大能猫 https://www.cnblogs. ...

  4. 安装maven,eclipse及eclipse配置maven

    现在的eclipse,maven安装非常简单.下载解压就可以用. 官网上下载eclipse, https://www.eclipse.org/downloads/eclipse-packages/ 选 ...

  5. 从co到koa01-co

    thunk 他的发展是由函数的求值策略的分歧决定的,两种求值策略 传值调用,在进入函数体之前就直接执行完,把值传进去 传名调用,将表达式传入函数体,只在用到他的时候求值 传名函数的编译器实现,其实就是 ...

  6. mysql备份mysqldump

    mysqldump常用于MySQL数据库逻辑备份. 1.各种用法说明 A. 最简单的用法: mysqldump -uroot -pPassword [database name] > [dump ...

  7. julia应用于自动驾驶汽车、机器人、3D 打印、精准医疗、增强现实、基因组学、能源交易、机器学习、金融风控和太空任务设计等多个领域

    编程界的新宠 Julia 发布 1.0 正式版本,多种优势集于一身2018-08-14 14:14 公司Julia 的累积下载次数超过 200 万,已被应用于自动驾驶汽车.机器人.3D 打印.精准医疗 ...

  8. TensorFlow环境搭建及安装教程

    1.安装虚拟环境virtualenv相关配置(创建了python3.5的环境) 2.http://docs.nvidia.com/cuda/cuda-installation-guide-linux/ ...

  9. R简易安装

    post={"title":"my Blog post","content":"Here's my blog post" ...

  10. MongoDB的连接字符串

    本文导读:MongoDB数据库与传统的关系型数据库相比,它具有操作简单.完全免费.源码公开等特点,这使MongoDB产品广泛应用于各种大型门户网站和专业网站.由于MongoDB连接并不支持HTTP协议 ...