zoukankan      html  css  js  c++  java
  • 文件的读取和写出

    要读取一个文件,有以下几个步骤:

    1.建立与文件的联系:File对象,文件必须存在

    2.选择流:按字节流读取,文件输入流 InputStream FileInputStream

    3.操作:byte[] car=new byte[1024]+read

    4.释放资源,注意jdk1.7后会自动关闭了

    InputStream是一个抽象类,不能new一个新的对象,所以这里使用多态

    InputStream is=new FileInputStream(......);

    选择构造方法,第一个和第三个比较常用,本质上来说这两种方法是一致的,通过String name 创建一个新对象,

    它内部还是会通过name包装成File

    在读取文件时,使用循环不断进行读取,定义一个制定长度的byte数组,则这个数组就是每次读取文件的长度,

    如果要输出,就创建一个String对象,String info = new String(car, 开始, 结束); 

    样例:

    复制代码
    package com.pony1223.byteio;
    
    import java.io.File;
    import java.io.FileInputStream;
    import java.io.FileNotFoundException;
    import java.io.IOException;
    import java.io.InputStream;
    
    public class Demo01 {
        public static void main(String[] args) 
        {
            // 1、建立联系 File对象
            File src = new File("E:/study/java/HelloWorld.java");
            // 2、选择流
            InputStream is = null; // 提升作用域
            try 
            {
                is = new FileInputStream(src);
                // 3、操作 不断读取 缓冲数组
                byte[] car = new byte[1024];
                int len = 0; // 接收 实际读取大小
                // 循环读取
                StringBuilder sb = new StringBuilder();
                while (-1 != (len = is.read(car)))
                {
                    // 输出 字节数组转成字符串
                    String info = new String(car, 0, len);
                    sb.append(info);
                }
                System.out.println(sb.toString());
    
            } 
            catch (FileNotFoundException e) 
            {
                e.printStackTrace();
                System.out.println("文件不存在");
            } catch (IOException e) 
            {
                e.printStackTrace();
                System.out.println("读取文件失败");
            }
            finally 
            {
                try 
                {
                    // 4、释放资源
                    if (null != is) 
                    {
                        is.close();
                    }
                }
                catch (Exception e2) 
                {
                    System.out.println("关闭文件输入流失败");
                }
            }
        }
    
    }
    复制代码

    文件写出,有以下几个步骤:

    1.建立与文件的联系:File对象,文件可不存在

    2.选择流:按字节流写出,文件输出流 OutputStream FileOutputStream

    3.操作:write+flush

    4.释放资源,注意jdk1.7后会自动关闭了

    FileOutputStream的构造方法

    FileOutputStream(File file,boolean append) 如果选择true,则是追加,false则覆盖

    构造方法中没有append参数的,则默认false,覆盖

    复制代码
    package com.pony1223.byteio;
    
    import java.io.File;
    import java.io.FileNotFoundException;
    import java.io.FileOutputStream;
    import java.io.IOException;
    import java.io.OutputStream;
    
    public class Demo02
    {
        public static void main(String[] args) 
        {
            File dest=new File("E:/study/java/test.txt");  
            OutputStream os=null;  
            try {  
                os=new FileOutputStream(dest);  
                String str="hahahaha";  
                //字符串转字节数组  
                byte[] data=str.getBytes();  
                  
                os.write(data,0,data.length);  
                  
                //强制刷新出去  
                os.flush();  
                  
            } 
            catch (FileNotFoundException e) 
            {  
                // TODO Auto-generated catch block  
                e.printStackTrace();  
            } 
            catch (IOException e)
            {  
                // TODO Auto-generated catch block  
                e.printStackTrace();  
            }finally
            {  
                  
                try {  
                    if(null!=os){  
                        os.close();  
                    }  
                } catch (IOException e) {  
                    // TODO Auto-generated catch block  
                    e.printStackTrace();  
                }  
            }  
        }  
    }
    复制代码
  • 相关阅读:
    Java如何编写自动售票机程序
    install windows service
    redis SERVER INSTALL WINDOWS SERVICE
    上传文件
    This problem will occur when running in 64 bit mode with the 32 bit Oracle client components installed.
    解决Uploadify上传控件加载导致的GET 404 Not Found问题
    OracleServiceORCL服务不见了怎么办
    Access to the temp directory is denied. Identity 'NT AUTHORITYNETWORK SERVICE' under which XmlSerializer is running does not have sufficient permiss
    MSSQL Server 2008 数据库安装失败
    数据库数据导出成XML文件
  • 原文地址:https://www.cnblogs.com/chinaifae/p/10328836.html
Copyright © 2011-2022 走看看