JAVA中IO操作的字节流和字符流实例分析

发布时间:2022-04-07 13:32:49 作者:iii
来源:亿速云 阅读:149

这篇文章主要介绍了JAVA中IO操作的字节流和字符流实例分析的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇JAVA中IO操作的字节流和字符流实例分析文章都会有所收获,下面我们一起来看看吧。

JAVA中IO操作的字节流和字符流实例分析

IO操作

JAVA中IO操作的字节流和字符流实例分析

字节流

FileInputStream

该流用于从文件读取数据,它的对象可以用关键字 new 来创建。
有多种构造方法可用来创建对象。
可以使用字符串类型的文件名来创建一个输入流对象来读取文件

InputStream f = new FileInputStream("D:/hello");

也可以使用一个文件对象来创建一个输入流对象来读取文件。我们首先得使用 File() 方法来创建一个文件对象:

File f = new File("D:/hello");InputStream in = new FileInputStream(f);

FileOutputStream

该类用来创建一个文件并向文件中写数据。
如果该流在打开文件进行输出前,目标文件不存在,那么该流会创建该文件。
有两个构造方法可以用来创建 FileOutputStream 对象。
使用字符串类型的文件名来创建一个输出流对象:

OutputStream f = new FileOutputStream("D:/hello");

也可以使用一个文件对象来创建一个输出流来写文件。我们首先得使用File()方法来创建一个文件对象:

File f = new File("D:/hello");OutputStream fOut = new FileOutputStream(f);

字节流读写案例

读取D:/hello.txt文件中的内容再输入到文件D:/test.txt中

      public class Mk {
        public static void main(String[] args) throws IOException {
            File file=new File("D://hello.txt");
            File file1= new File("D://test.txt");
            InputStream is=new FileInputStream(file);
            OutputStream out=new FileOutputStream(file1);
            //定义byte数组用来暂存数据
            byte[] buf = new byte[1024];
            //读取Is中的内容存到buf
            is.read(buf);
            //将buf中的内容写入out
            out.write(buf);
            is.close();
            out.close();
        }
        }

字符流

FileWriter

写入文件实例

public class A {
    public static void main(String[] args) throws IOException {
        FileWriter fw = new FileWriter("user.txt", true);
        fw.write("你好中国1");
        fw.write("你好中国2");
        fw.write("你好中国3");
        fw.close();
    }}

JAVA中IO操作的字节流和字符流实例分析
JAVA中IO操作的字节流和字符流实例分析

FileReader

读取文件实例
这里我把内容换行了
JAVA中IO操作的字节流和字符流实例分析
br.ready()是判断这一行流是否为空
br.readLine()是输出一行,然后自动光标指到下一行。

public class A {
    public static void main(String[] args) throws IOException {
        BufferedReader br = new BufferedReader(new FileReader("user.txt"));
        while (br.ready()) {
            System.out.println(br.readLine());
        }
        br.close();
    }}

JAVA中IO操作的字节流和字符流实例分析

字节流与字符流得区别

字节流和字符流使用是非常相似的,那么除了操作代码的不同之外,还有哪些不同呢?

字节流在操作的时候本身是不会用到缓冲区(内存)的,是与文件本身直接操作的,而字符流在操作的时候是使用到缓冲区的
字节流在操作文件时,即使不关闭资源(close方法),文件也能输出,但是如果字符流不使用close方法的话,则不会输出任何内容,说明字符流用的是缓冲区,并且可以使用flush方法强制进行刷新缓冲区,这时才能在不close的情况下输出内容

那开发中究竟用字节流好还是用字符流好呢?

在所有的硬盘上保存文件或进行传输的时候都是以字节的方法进行的,包括图片也是按字节完成,而字符是只有在内存中才会形成的,所以使用字节的操作是最多的。
如果要java程序实现一个拷贝功能,应该选用字节流进行操作(可能拷贝的是图片),并且采用边读边写的方式(节省内存)。

关于“JAVA中IO操作的字节流和字符流实例分析”这篇文章的内容就介绍到这里,感谢各位的阅读!相信大家对“JAVA中IO操作的字节流和字符流实例分析”知识都有一定的了解,大家如果还想学习更多知识,欢迎关注亿速云行业资讯频道。

推荐阅读:
  1. 字节流和字符流的区别
  2. java中字符流与字节流有什么不同

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

java io

上一篇:mysql如何修改表前缀

下一篇:JavaScript匿名函数知识点有哪些

相关阅读

您好,登录后才能下订单哦!

密码登录
登录注册
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》