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();
            }
        
    }

}

最新文章

  1. 从头开始搭建分布式日志平台的docker环境
  2. Sticks(poj1011/uva307)
  3. boost之bind
  4. 转Spring+Hibernate+EHcache配置(二)
  5. Registry uninstall values
  6. 【课程分享】基于Lucene4.6+Solr4.6+Heritrix1.14+S2SH实战开发从无到有垂直搜索引擎
  7. H面试程序(1)编写一个函数,要求输入年月日时分秒,输出该年月日时分秒的 下一秒
  8. 在浏览器中输入Google.com并且按下回车之后发生了什么?
  9. 【小练习05】HTML+CSS--淘宝商铺小页面
  10. 第五节:WebApi的三大过滤器
  11. 再解炸弹人,dfs&amp;bfs
  12. EOS 权限
  13. [洛谷3375]【模板】KMP字符串匹配
  14. 无法打开物理文件“E:\Database\VRVIES6841-FZ01-Global\VRVEIS.mdf”。操作系统错误 5:“5(拒绝访问。)”
  15. 马婕 2014MBA专硕考试 报刊选读 4 朝鲜战争会爆发吗?(转)
  16. 给出一列数a1,a2,a3....an,求它们的逆序对数,即有多少个有序对(i,j) 使得iaj,n高达10的6次方
  17. JavaScript动态加载js文件
  18. css 字体英文对照
  19. IntelliJ IDEA 版本控制(svn、git) 修改文件后,所属目录的颜色也变化
  20. 带圈星号用MathType可以编辑出来吗

热门文章

  1. TCP,UDP,IP总结
  2. JDK源码学习笔记——HashSet LinkedHashSet TreeSet
  3. Java常用小笔记
  4. 关于智能硬件设备shell安全设计
  5. SQL SERVER 2008 数据库置疑处理办法
  6. (转)c#中判断是不是数字和字母
  7. 【centOS】【xshell】xshell连接虚拟机上的centOS,操作途中突然断开连接,报错:connect closed by foreign host
  8. jQuery.extend重载合并
  9. [Java基础] Java对象内存结构
  10. pytho文件命名不要内部模块或者引用模块名字相同