输入输出流

1、字节输入输出流

package org.hanqi.ex;

import java.io.*;

public class TestFile1 {

    public static void main(String[] args) {
        
        File f1=new File("d:\test.txt");
        
        if(f1.exists())
        {
            System.out.println("文件已存在");
            
            //输入输出
            //从内存向硬盘上的文件输出文字
            
            //构造方法 方法1 传入File实例 方法2 传入一个文件名
            
            //方法1 传入File实例
            try {
                
                FileOutputStream fo=new FileOutputStream(f1);
                
                String str="大家好";
                
                //以字节数组的形式写入
                byte[] b=str.getBytes();
                
                fo.write(b);//写入
                
                fo.close();//主动关闭输出流,释放文件    
                    
                
                //从硬盘文件读入文字
                
                //构造方法,指明从哪个文件读入
                FileInputStream fi=new FileInputStream(f1);
                
                byte[]  c=new byte[1024];//用来装载读入的数据,事先指定一个默认大小(1024)
                
                //返回值表示读入数据的长度
                //传入引用类型
                int l=fi.read(c);//实际上传入的是数组地址
                
                //转换指定位置的字符串,位数用l表示
                String str1=new String(c,0,l);//(数组,开始位置,结束长度)
                
                System.out.println("读入的内容=" +str1);
                
                System.out.println("读入的内容的长度=" +str1.length());
                
                fi.close();
                
            } catch (FileNotFoundException e) {
                
                System.out.println("要输出的文件不存在");
                
                e.printStackTrace();
                
            } catch (IOException e) {
                
                e.printStackTrace();
            }
            
        }
        else
        {
            System.out.println("文件不存在,创建文件");
            
            try {
                if(f1.createNewFile())
                {
                    System.out.println("文件创建成功");
                }
                else
                {
                    System.out.println("文件创建失败");
                }
            } catch (IOException e) {
                 
                e.printStackTrace();
            
            }
        }

    }

}
View Code

package org.hanqi.ex;

import java.io.*;

public class TestFile2 {

    public static void main(String[] args) {


        try {
            
            //追加写入
            //构造函数后面()最后加true
            FileOutputStream fos=new FileOutputStream("d:\test.txt",true);
            
            String str="
心情不错";
            
            fos.write(str.getBytes());//写入是覆盖写入
            
            fos.close();
            
            FileInputStream  fis=new FileInputStream("d:\test.txt");
            
            byte[] b=new byte[200];
            
            int i=fis.read(b);
            
            //转换
            
            String str1=new  String(b,0,i);
            
            System.out.println("读取内容:" +str1);
            
            
            fis.close();
            
            
        } catch (Exception e) {


            e.printStackTrace();
        }

    }

}
View Code

2、字符输入输出流

package org.hanqi.ex;

import java.io.*;

public class TestFile3 {
    
    public static void main(String[] args) {
        // TODO 自动生成的方法存根
        
        try {
            
            //读取
            FileReader fr=new FileReader("d:\test.txt");
            
            char[] c=new char[200];
            
            int i=fr.read(c);
            
            String str=new String(c,0,i);
            
            System.out.println("读取内容:" +str);
            
            fr.close();
            
            
            //写入
            FileWriter fw=new FileWriter("d:\test.txt",true);
            
            fw.write("
新追加的内容");
            
            fw.close();
        
            
        } catch (Exception e) {
            
            e.printStackTrace();
        }

    }

}
View Code

原文地址:https://www.cnblogs.com/wangchuanqi/p/5277296.html