• 37、使用FileInputStream和FileOutputStream读取和写入


    绝对路径和相对路径

    • 绝对路径:指文件在硬盘上真正存在的路径,比如:D:JavaHelloWorld.java,这个指的是在电脑的d盘下的Java文件夹里面有个HelloWorld.java文件
    • 相对路径:指某个文件的路径和别的文件的路径关系,比如在d盘里面有个两个文件,路径分别是:D:JavaHelloWorld.java和D:Javaimagesmonkey.png。他们都在d盘中的Java文件夹里面,其中monkey.png这个文件的路径相对HelloWorld.java来说就是imagesmonkey.png

    使用FileInputStream读取文件中的内容

    在项目的根目录里面创建一个file文件夹,在这个文件夹里面再创建monkey.txt的文本文件,然后在里面写上abc这三个字母,保存关闭。
    下面通过FileInputStream将硬盘中的monkey.txt文件中的内容读取到内存当中并在控制台打印,操作结束之后注意关闭流释放资源,这里相当于在内存和硬盘之间放一个梯子,在将硬盘中的文件全部读取到内存之后,需要拿掉梯子,否则会浪费资源。

    package com.sutaoyu.IO;
    
    import java.io.FileInputStream;
    import java.io.FileNotFoundException;
    import java.io.IOException;
    
    public class IO_test_2 {
        public static void main(String[] args) {
            FileInputStream fis = null;
            try {
                //绝对路径,需要加转义字符
                //fis = new FileInputStream("F:\monkey1024\01-JavaSE\代码\code\chapter-08\file\monkey.txt");
                //相对路径
                fis = new FileInputStream("file\monkey.txt");
                //定义byte数组每次读取三个字节提高效率
                byte[] bytes = new byte[3];
                
                int temp;
                //如果返回-1则说明读取完毕
                while((temp = fis.read(bytes)) != -1) {
                    System.out.println(new String(bytes,0,temp));
                }
            }catch(FileNotFoundException e) {
                e.printStackTrace();
            }catch(IOException e) {
                e.printStackTrace();
            }finally {
                try {
                    fis.close();
                }catch(IOException e) {
                    e.printStackTrace();
                }
            }
        }
    }

    使用FileOutputStream向文件写出内容

    向1024.txt文件中写出字母

    在windos中的文件路径是以””来分隔
    在linux中的文件路径是以”/”来分隔
    如果将上面代码部署到linux中会读取不到文件,为了保证编写的代码跨平台需要使用java.io包下的File.separator来替代文件路径的分隔符,如下:

    fis = new FileInputStream("file\monkey.txt");

    修改为

    fis = new FileInputStream("file" + File.separator + "monkey.txt");
  • 相关阅读:
    腾讯云ubuntu安装Mysql并配置远程访问
    腾讯云ubuntu搭建tomcat
    腾讯云ubuntu搭建jdk
    说说建站那些事
    网络爬虫:分离生产者和消费者来优化爬虫程序
    spring mvc 图片上传,图片压缩、跨域解决、 按天生成文件夹 ,删除,限制为图片代码等相关配置
    UIkit – 轻量级前端框架
    【Spark】RDD操作具体解释3——键值型Transformation算子
    java线程具体解释
    HDU 5402 Travelling Salesman Problem(棋盘染色 构造 多校啊)
  • 原文地址:https://www.cnblogs.com/zhuifeng-mayi/p/10141555.html
Copyright © 2020-2023  润新知