绝对路径和相对路径

  • 绝对路径:指文件在硬盘上真正存在的路径,比如: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文件中的内容读取到内存当中并在控制台打印,操作结束之后注意关闭流释放资源,这里相当于在内存和硬盘之间放一个梯子,在将硬盘中的文件全部读取到内存之后,需要拿掉梯子,否则会浪费资源。

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");

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. 函数调用时形参的传递也会被认为是赋值操作(继承自Object后会出现的问题)

    http://blog.csdn.net/houqd2012/article/details/25070987

  2. SpringMVC 之 mvc:exclude-mapping 不拦截某个请求

    在使用 SpringMVC 是,配置了一个 Session 拦截器,用于拦截用户是否登录,但是用户访问登录页面和注册页面时就不需要拦截了,这时就需要用到这个标签了 <mvc:execlude-m ...

  3. 清华集训2015-Day 2

    校内测试做到了,于是就把解题报告发出来. 简单回路 一个 \(n\times m\) 的方格纸,有 \(k\) 个障碍点.\(q\) 次询问,每次询问 \((x,y)\) ,问有多少条简单回路经过 \ ...

  4. bzoj 4451 : [Cerc2015]Frightful Formula FFT

    4451: [Cerc2015]Frightful Formula Time Limit: 10 Sec  Memory Limit: 64 MBSubmit: 177  Solved: 57[Sub ...

  5. MVC4.0中cshtml中怎么解析html编码

    http://bbs.csdn.net/topics/391060108?page=1 问题描述: 数据库中存储带有格式的文本,如 <span style="color:#333333 ...

  6. Docker 及 nvidia-docker 使用

    Docker 基本用法 1. 安装社区版docker-ce 及 nvidia-docker2 插件 通过官网介绍的软件源的方式安装. 如果要安装nvidia-docker,由于其需要与docker-c ...

  7. Maven settings.xml配置(指定本地仓库、阿里云镜像设置)

    转: 详解Maven settings.xml配置(指定本地仓库.阿里云镜像设置) 更新时间:2018年12月18日 11:14:45   作者:AmaniZ   我要评论   一.settings. ...

  8. bzoj 4332 FFT型的快速幂(需要强有力的推导公式能力)

     有n个小朋友,m颗糖,你要把所有糖果分给这些小朋友. 规则第 i 个小朋友没有糖果,那么他之后的小朋友都没有糖果..如果一个小朋友分到了 xx 个糖果,那么的他的权值是 f(x) = ox^2 +  ...

  9. codeforces.com/contest/251/problem/C

    C. Number Transformation time limit per test 2 seconds memory limit per test 256 megabytes input sta ...

  10. linux基础命令之sed

    什么是sed? sed是一个流编辑器,英文全名为stream editor,流的意思就是能处理文件或者通过管    道传输来的数据.主要针对行,也就是行编辑.默认是不编辑文件的,处理时,把当前    ...