绝对路径和相对路径

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

使用FileInputStream读取文件中的内容

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

  1. package com.sutaoyu.IO;
  2.  
  3. import java.io.FileInputStream;
  4. import java.io.FileNotFoundException;
  5. import java.io.IOException;
  6.  
  7. public class IO_test_2 {
  8. public static void main(String[] args) {
  9. FileInputStream fis = null;
  10. try {
  11. //绝对路径,需要加转义字符
  12. //fis = new FileInputStream("F:\\monkey1024\\01-JavaSE\\代码\\code\\chapter-08\\file\\monkey.txt");
  13. //相对路径
  14. fis = new FileInputStream("file\\monkey.txt");
  15. //定义byte数组每次读取三个字节提高效率
  16. byte[] bytes = new byte[3];
  17.  
  18. int temp;
  19. //如果返回-1则说明读取完毕
  20. while((temp = fis.read(bytes)) != -1) {
  21. System.out.println(new String(bytes,0,temp));
  22. }
  23. }catch(FileNotFoundException e) {
  24. e.printStackTrace();
  25. }catch(IOException e) {
  26. e.printStackTrace();
  27. }finally {
  28. try {
  29. fis.close();
  30. }catch(IOException e) {
  31. e.printStackTrace();
  32. }
  33. }
  34. }
  35. }

使用FileOutputStream向文件写出内容

向1024.txt文件中写出字母

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

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

修改为

  1. fis = new FileInputStream("file" + File.separator + "monkey.txt");

37、使用FileInputStream和FileOutputStream读取和写入的更多相关文章

  1. Java IO流的写入和写出操作 FileInputStream和FileOutputStream

    今天学习了Java的IO流,关于文件的读入和写出,主要是FileInputStream和FileOutputStream来实现,这两个流是字节流.还有字符流(FileReader和FileWriter ...

  2. Android 文件的读取和写入

    (1)openFileInput和openFileOutput的使用 文件的使用,注意最后要用finally给关闭掉. openFileOutput:(写入文件,如果没有文件名可以创建,这里不需要判断 ...

  3. File相关的读取和写入以及复制

    import java.io.BufferedReader;import java.io.BufferedWriter;import java.io.File;import java.io.FileI ...

  4. 【Java IO】FileInputStream 和 FileOutputStream

    class FileInputStream extends  InputStream implements Closeable

  5. java中OutputStream字节流与字符流InputStreamReader 每一种基本IO流BufferedOutputStream,FileInputStream,FileOutputStream,BufferedInputStream,BufferedReader,BufferedWriter,FileInputStream,FileReader,FileWriter,InputStr

    BufferedOutputStream,FileInputStream,FileOutputStream,BufferedInputStream,BufferedReader,BufferedWri ...

  6. 在线程中进行读取并写入文件和wenjia

    新人求(胸)罩!!! import java.io.File; import java.io.FileInputStream; import java.io.FileNotFoundException ...

  7. Java配置文件Properties的读取、写入与更新操作

    /** * 实现对Java配置文件Properties的读取.写入与更新操作 */ package test; import java.io.BufferedInputStream; import j ...

  8. 关于java读取和写入properties配置文件的内容

    一般通过使用流的方式进行读取 代码示例如下: package com.zznode.transmit.util; import java.io.FileInputStream; import java ...

  9. 深入解析FileInputStream和FileOutputStream

    http://swiftlet.net/archives/1363 FileInputStream和FileOutputStream类属于字节类,可以操作任意类型的文件.在数据流的处理过程中,有两种情 ...

随机推荐

  1. Qt 删除目录

    删除目标的目录,若该目录下有子目录,一并删除. //判断是否存在子目录 bool judgeDir(QDir dir) { dir.setFilter(QDir::AllEntries | QDir: ...

  2. Shell脚本创建Nginx的upstream及location配置文件

    #!/bin/sh ##################################################### # Name: create_nginx_conf.sh # Versi ...

  3. Luogu4884 多少个1?(BSGS)

    11……1(n个)=99……9(n个)/9=(10n-1)/9. 那么显然就是求离散对数了,BSGS即可. #include<iostream> #include<cstdio> ...

  4. MT【149】和式变形

    (2018浙江省赛14题)将$2n(n\ge2)$个不同的整数分成两组$a_1,a_2,\cdots,a_n;b_1,b_2,\cdots,b_n$.证明:$\sum\limits_{1\le i\l ...

  5. bzoj1026windy数

    题目链接:http://www.lydsy.com/JudgeOnline/problem.php?id=1026 Description windy定义了一种windy数.不含前导零且相邻两个数字之 ...

  6. GDOI2018记录

    ​ 说实话,直到初三暑假升高一的时候,我才开始形成竞赛观.那时才顿觉一年的各个比赛是多么重要. ​ 紧接着我的NOIP就直接爆炸了.这意味着我一年也完蛋了.各种人去WC,然后我留在家里. ​ 那GDO ...

  7. Codeforces Round #532

    以后不放水题了 C.NN and the Optical Illusion 复习一下高中数学即可 $\frac{ans}{ans+r}=\sin \frac{\pi}{n}$ 解方程 #include ...

  8. python函数:基础函数调用整理

    声明:以下链接和描述据来自于网络,很多都是来自菜鸟教程 一.字符串 str python字符串格式化符号: %c 格式化字符及其ASCII码  %s 格式化字符串 %d 格式化整数 函数 描述 需要掌 ...

  9. mac 命令行大杂烩

    一.实用的 1.代替 cat 的工具:bat,支持语法高亮.同时显示行号,使用: bat xx.yyy 安装:brew install bat 2.man 命令的替代品:tldr 安装:brew in ...

  10. Kubernetes--kubectl

    一.Kubectl命令行说明 类型 命令 描述 基础命令 create  通过文件名或标准输入创建资源 expose  将一个资源公开为一个新的kubernetes服务 run 创建并运行一个特定的镜 ...