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. [SRM568]DisjointSemicircles

    题意:$2n$个位置排成一列,有一些位置已经填了数字($0\cdots n-1$中每个数字出现$0$次或$2$次),问是否存在一种填数方案使得用$n$个不相交的半圆可以把相同的数字连起来 首先把所有已 ...

  2. ssm框架整合快速入门

    写在前面: 公司一直都是使用ssh框架(Struts2,Spring,Hibernate)来开发,但是现在外面的公司大多数都是使用的ssm框架,所以也有必要多学习一下外面的新技术.这里就快速搭建一个小 ...

  3. [BZOJ1007](HNOI2008)水平可见直线(半平面交习题)

    Description 在xoy直角坐标平面上有n条直线L1,L2,...Ln,若在y值为正无穷大处往下看,能见到Li的某个子线段,则称Li为可见的,否则Li为被覆盖的.     例如,对于直线:   ...

  4. Html 事件列表

    Html 事件列表 一般事件:onClick HTML: 鼠标点击事件,多用在某个对象控制的范围内的鼠标点击onDblClick HTML: 鼠标双击事件onMouseDown HTML: 鼠标上的按 ...

  5. PHP数组和数据结构(下)未完。。。。

    1.数组的遍历 (1)each(): 接受一个数组作为参数,返回数组中当前元素的键/值对,并向后移动数组指针到下一个元素的位置 键/值对被返回为带有四个元素的关联和索引混合的数组,键名分别为0,1,k ...

  6. MYSQL复习笔记6-字符集

    Date: 20100101 Auth: Jin 参考http://blog.sina.com.cn/s/blog_9707fac301016wxm.html 一.字符集介绍 计算机只处理二进制代码 ...

  7. 一次完整的HTTP请求的大致过程(转)

    说明:这些理论基本都来自网上,所以不一定准确,但一定是比较好理解的,如果要刨根问底,最好的方式就是看书,且要看权威的书. 一次完整的HTTP请求所经历的7个步骤 HTTP通信机制是在一次完整的HTTP ...

  8. 你家的Wifi密码安全吗?

    WiFi在给我们提供方便的无线网络同时,也带了一些隐患.如果对WiFi不设密码的话,一来会因为蹭网而影响网速,二来给信息安全带来了不小隐患.针对WiFi的安全手段,一般来说就是加密.最初的加密方式是W ...

  9. Unity3d-Socket之龙一编年史network.dll分析(1)

    今天闲着无聊,看到群里的老大共享了反编译的工具,就下载下来玩下. 说道反编译我个人不太推崇反编译,感觉不道德,毕竟是人家的代码,但是又回想一下,我们拿代码看是抱着学习的态度又有何不可,所谓既是民族的也 ...

  10. arithmetic-slices

    https://leetcode.com/problems/arithmetic-slices/ public class Solution { public int numberOfArithmet ...