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. python基础之递归,匿名,内置函数

    递归函数: 什么是递归函数? 函数递归调用:在调用一个函数的过程中,又直接或间接地调用了该函数本身. 递归必须要有两个明确的阶段: ①递推:一层一层递归调用下去,强调:每进入下一层问题规模减少 ②回溯 ...

  2. 设置Eclipse编码方式

    1.windows->Preferences...打开"首选项"对话框,左侧导航树,导航到 general->Workspace,右侧Text file encodin ...

  3. java instanceof方法

    基本用法 null instanceof Object   为false: null instanceof 任意类 为false:任意实例 instanceof 对应的类或者父类 都为true: 基本 ...

  4. 通过scrapy内置的ImagePipeline下载图片到本地、并提取本地保存地址

    1.通过scrapy内置的ImagePipeline下载图片到本地 2.获取图片保存本地的地址 1.通过scrapy内置的ImagePipeline下载图片到本地 1)在settings.py中打开  ...

  5. 解决 javax.net.ssl.SSLException: java.lang.RuntimeException: Could not generate DH keypair

    解决这个异常的重点就在于下载两个jar包: bcprov-ext-jdk15on-1.52 bcprov-jdk15on-1.52 传送门:https://stackoverflow.com/ques ...

  6. BZOJ 4032: [HEOI2015]最短不公共子串 后缀自动机 暴力

    4032: [HEOI2015]最短不公共子串 题目连接: http://www.lydsy.com/JudgeOnline/problem.php?id=4032 Description 在虐各种最 ...

  7. sqlserver 脚本 多条记录遍历

    临时表方式实现多条记录遍历 declare @oper_cart_item_id bigint; declare @oper_cart_id bigint; declare @the_last_cha ...

  8. Font Include Sass Mixin

    前端开发whqet,csdn,王海庆,whqet,前端开发专家 前期以前给大家介绍过一个使用google font的mixin(详见<Google Fonts Sass Mixin>),今 ...

  9. 怎么查看和修改 MySQL 的最大连接数

    通常,mysql的最大连接数默认是100, 最大可以达到16384.1.查看最大连接数:show variables like '%max_connections%';2.修改最大连接数方法一:修改配 ...

  10. Ubuntu下,清屏等终端常用命令

    转自:http://blog.csdn.net/gaojinshan/article/details/9314435 # ctrl + l - 清屏 . cLear# ctrl + c - 终止命令. ...