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. BZOJ 1828 [Usaco2010 Mar]balloc 农场分配(贪心+线段树)

    [题目链接] http://www.lydsy.com/JudgeOnline/problem.php?id=1828 [题目大意] 现在有一些线段[l,r]的需求需要满足,i位置最多允许a[i]条线 ...

  2. BZOJ 1066 [SCOI2007]蜥蜴(最大流)

    [题目链接] http://www.lydsy.com/JudgeOnline/problem.php?id=1066 [题目大意] 在一个r行c列的网格地图中有一些高度不同的石柱,一些石柱上站着一些 ...

  3. 【组合数】【乘法逆元】 Codeforces Round #404 (Div. 2) D. Anton and School - 2

    http://codeforces.com/blog/entry/50996 官方题解讲得很明白,在这里我复述一下. 枚举每个左括号,考虑计算一定包含其的简单括号序列的个数,只考虑其及其左侧的左括号, ...

  4. (原创)Stanford Machine Learning (by Andrew NG) --- (week 9) Anomaly Detection&Recommender Systems

    这部分内容来源于Andrew NG老师讲解的 machine learning课程,包括异常检测算法以及推荐系统设计.异常检测是一个非监督学习算法,用于发现系统中的异常数据.推荐系统在生活中也是随处可 ...

  5. 检测是否为n的因子 Exercise07_06

    /** * @author 冰樱梦 * 时间:2018年下半年 * 题目:检测是否为n的因子 * */ public class Exercise07_06 { public static void ...

  6. PYTHON之爬虫学习(一)基础

    关于python爬虫,大家都很熟悉,那么我就不多说,开始做了. 首先,python爬虫先安装python库,主要是requests库,在windows中cmd中输入,pip install reque ...

  7. JS小游戏寻找房祖名

    提示:1:先把两个图片放到重命名并放到相应的路径内. 2:本小游戏只为闲事练手,如有小bug自行解决,解决不了的可以留言,我看到后解决. 代码如下: <!DOCTYPE html>< ...

  8. Ubuntu 16.04搭建OpenVPN服务器以及客户端的使用

    说明:启动时注意用户权限,比如root用户启动. Ubuntu: 服务器环境:Ubuntu 16.04 64位系统 内网IP:10.143.80.116 外网IP:203.195.1.2 OpenVP ...

  9. HDU 4305 Lightning(计算几何,判断点在线段上,生成树计数)

    Lightning Time Limit: 4000/2000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Total S ...

  10. VS2010 C++ 创建COM组件

    1.项目中要使用到com组件,于是了解了一下com,并根据<C#高级编程>中关于com的介绍用vs创建了一下com,用于实验.以下均根据书中的demo做一遍,熟悉一下而已. 2.创建CoM ...