FileInput(Output)Stream

FileInputStream

import java.io.*;
public class TestFileInputStream {
    public static void main(String[] args) {
        int b = 0;
        FileInputStream in = null;
        try {
            in = new FileInputStream("D:\\test.txt");
        }catch(FileNotFoundException e) {
            System.out.println("找不到指定文件");
            System.exit(-1);
        }
        try {
            long num = 0;
            while((b = in.read()) != -1){//判断是否读到结尾 
                System.out.print((char)b);
                num++;
            }
            in.close();
            System.out.println();
            System.out.println("共读取了" + num + "个字节");
        }catch(IOException e1) {
            System.out.println("文件读取错误");
            System.exit(-1);
        }
    }
}

 程序第8行调用FileInputStream构造方法,参数为一个文件的路径,会抛出异常,所以必须要catch

 其次,FileInputStream一个字节一个字节往外读,如果文件中有中文,中文是两个字节,读出来的中文就无法正常的显示,把FileInputStream改为FileReader即可解决这个问题

FileOutputStream

import java.io.*;
public class TestFileOutputStream {
    public static void main(String[] args) {
        int b = 0;
        FileInputStream in = null;
        FileOutputStream out = null;
        try {
            in = new FileInputStream("D:/test.txt");
            out = new FileOutputStream("D:/test1.txt");
            while((b = in.read()) != -1) {
                out.write(b);
            }
            in.close();
            out.close();
        }catch(FileNotFoundException e2) {
            System.out.println("找不到指定文件");
            System.exit(-1);
        }catch(IOException e1) {
            System.out.println("文件复制错误");
            System.exit(-1);
        }
        System.out.println("文件已复制");
    }
}

 第八行是将“管道”插在test.txt上准备读,第九行是将“另一根管道”插在test1.txt上准备写,如果准备要写入的文件不存在,FileOutputStream会自动创建

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏于晓飞的专栏

Java I/O 总结

Java I/O的的架构使用了装饰器的模式,我们在使用流的时候需要新建很多的装饰器对象,对源数据进行层层包装。各个包装类名以及它们的应用场景比较多,初学的时候难...

25230
来自专栏个人随笔

当Java遇到XML 的邂逅+dom4j

16820
来自专栏个人随笔

Java 持久化操作之 --XML

1)有关XML简介     XML(EXtensible Markup Language)可扩展标记语言     特点:XML与操作系统、编程语言的开发平台无关...

435100
来自专栏ml

javaSE之如何将一个文档显示出来(,txt,.doc,.....)

1 package DEMO ; 2 3 import java.io.File; 4 import java.io.FileInputStream...

31560
来自专栏Java编程

详细讲解Java中的IO流

1.java.io包中的类对应两类流,一类流直接从指定的位置(如磁盘文件或内存区域)读或写,这类流称为结点流(node stream),其它的流则称为过滤器(f...

69700
来自专栏IT大咖说

Getting started with Kotlin on Android

摘要 Kotlin是一门与Swift类似的静态类型JVM语言,由JetBrain设计开发并开源,与Java相比,Kotlin的语法更简洁,更具表达性,而且提供了...

28750
来自专栏高性能服务器开发

这些年一直记不住的 Java I/O

阅读目录 参考资料 前言 从对立到统一,字节流和字符流 从抽象到具体,数据的来源和目的 从简单到丰富,使用 Decorator 模式扩展功能 Java 7 中引...

36550
来自专栏小灰灰

java之的读取文件大全

java之的读取文件大全 使用java进行文件读写,因为使用的频率不高,加上写起来也没那么简单,经常容易忘记,然后就得去翻阅以前的笔记,或者找寻之前写的文件读...

664100
来自专栏软件工程师成长笔记

Java判断计算机网络连接是否正常

35420
来自专栏微信公众号:Java团长

Java文件操作——XML文件的读取

文件种类是丰富多彩的,XML作为众多文件类型的一种,经常被用于数据存储和传输。所以XML在现今应用程序中是非常流行的。本文主要讲Java解析和生成XML。用于不...

18420

扫码关注云+社区

领取腾讯云代金券