Java文件读写操作

Java文件读写操作Java中I/O流对文件的读写有很多种方法,在这里我主要介绍三种方式,供大家参考。第一种方式:使用FileWriter和FileReader,对文件内容按字符读取,代码如下Stringdir="E:\\soft\\aaa\\a.txt";Filefile=newFile(dir);//如果文件不存在,创建文件if(!file.exists())file.c…

大家好,又见面了,我是你们的朋友全栈君。

Java中I/O流对文件的读写有很多种方法,在这里我主要介绍三种方式,供大家参考。

第一种方式:使用FileWriter和FileReader,对文件内容按字符读取,代码如下

String dir = "E:\\soft\\aaa\\a.txt";
File file = new File(dir);
//如果文件不存在,创建文件
if (!file.exists()) 
    file.createNewFile();
//创建FileWriter对象
FileWriter writer = new FileWriter(file);
//向文件中写入内容
writer.write("the first way to write and read");
writer.flush();
writer.close();

//创建FileReader对象,读取文件中的内容
FileReader reader = new FileReader(file);
char[] ch = new char[100];
reader.read(ch);
for(char c:ch) {
    System.out.print(c);
}
System.out.println();
reader.close();

第二种方式:使用包装类BuffredReader和BufferedWriter,对文件内容进行整行读取,代码如下

String dir = "E:\\soft\\aaa\\b.txt";
File file = new File(dir);
//如果文件不存在,创建文件
if (!file.exists()) 
    file.createNewFile();
//创建BufferedWriter对象并向文件写入内容
BufferedWriter bw = new BufferedWriter(new FileWriter(file));
//向文件中写入内容
bw.write("the second way to write and read");
bw.flush();
bw.close();
//创建BufferedReader读取文件内容
BufferedReader br = new BufferedReader(new FileReader(file));
String line;
while ((line=br.readLine())!=null) {
    System.out.println(line);
}
br.close();

第三种方式:使用FileInputStream和FileOutputStream,这种方法以字节的形式写入文件,读取文件时先读取字节数组,再将字节数组转换为字符串形式,代码如下:

String dir = "E:\\soft\\aaa\\c.txt";
File file = new File(dir);
//如果文件不存在,创建文件
if (!file.exists()) 
    file.createNewFile();
//创建FileOutputStream对象,写入内容
FileOutputStream fos = new FileOutputStream(file);
//向文件中写入内容
fos.write("the third way to write and read".getBytes());
fos.close();
//创建FileInputStream对象,读取文件内容
FileInputStream fis = new FileInputStream(file);
byte[] bys = new byte[100];
while (fis.read(bys, 0, bys.length)!=-1) {
    //将字节数组转换为字符串
    System.out.println(new String(bys));
}
fis.close();

类中的整体代码:

import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;

public class FileRW { 
   

    //第一种方式:使用FileWriter和FileReader
    public void firstWay() throws IOException {
        String dir = "E:\\soft\\aaa\\a.txt";
        File file = new File(dir);
        //如果文件不存在,创建文件
        if (!file.exists()) 
            file.createNewFile();
        //创建FileWriter对象
        FileWriter writer = new FileWriter(file);
        //向文件中写入内容
        writer.write("the first way to write and read");
        writer.flush();
        writer.close();

        //创建FileReader对象,读取文件中的内容
        FileReader reader = new FileReader(file);
        char[] ch = new char[100];
        reader.read(ch);
        for(char c:ch) {
            System.out.print(c);
        }
        System.out.println();
        reader.close();
    }

    //第二种方式:使用BuffredReader和BufferedWriter
    public void secondWay() throws IOException {
        String dir = "E:\\soft\\aaa\\b.txt";
        File file = new File(dir);
        //如果文件不存在,创建文件
        if (!file.exists()) 
            file.createNewFile();
        //创建BufferedWriter对象并向文件写入内容
        BufferedWriter bw = new BufferedWriter(new FileWriter(file));
        //向文件中写入内容
        bw.write("the second way to write and read");
        bw.flush();
        bw.close();
        //创建BufferedReader读取文件内容
        BufferedReader br = new BufferedReader(new FileReader(file));
        String line;
        while ((line=br.readLine())!=null) {
            System.out.println(line);
        }
        br.close();
    }

    //第三种方式:使用FileInputStream和FileOutputStream
    public void thirdWay() throws IOException {
        String dir = "E:\\soft\\aaa\\c.txt";
        File file = new File(dir);
        //如果文件不存在,创建文件
        if (!file.exists()) 
            file.createNewFile();
        //创建FileOutputStream对象,写入内容
        FileOutputStream fos = new FileOutputStream(file);
        //向文件中写入内容
        fos.write("the third way to write and read".getBytes());
        fos.close();
        //创建FileInputStream对象,读取文件内容
        FileInputStream fis = new FileInputStream(file);
        byte[] bys = new byte[100];
        while (fis.read(bys, 0, bys.length)!=-1) {
            //将字节数组转换为字符串
            System.out.println(new String(bys));
        }
        fis.close();
    }

    public static void main(String[] args) throws IOException {
        FileRW fileRW = new FileRW();
        fileRW.firstWay();
        fileRW.secondWay();
        fileRW.thirdWay();
    }
}

运行结果如下:

the first way to write and read
the second way to write and read
the third way to write and read

希望对大家有帮助,有什么问题欢迎提问

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/159368.html原文链接:https://javaforall.net

(0)
上一篇 2022年7月14日 下午10:36
下一篇 2022年7月14日 下午10:36


相关推荐

  • verilog语言转vhdl语言_vhdl转换为verilog

    verilog语言转vhdl语言_vhdl转换为verilog1.下载后先运行X-HDL-4.2.1-Setup.exe文件,选择安装路径,注意路径中不要有中文。2.运行crack_xhdl_4.2.1.exe文件,选择刚刚你安装XHDL的路径下的\bin文件夹,点击next—finish,出现success代表激活成功教程成功。3.可能会要求你重启电脑,这时候同意重启就好了。4.重启之后运行X-HDL。5.可以选择VHDL转Verilog或Verilog转…

    2026年2月7日
    4
  • 开源 MQTT 服务器

    开源 MQTT 服务器到目前为止,比较流行的开源MQTT服务器有几个:1.EclipseMosquitto使用C语言实现的MQTT服务器。Eclipse组织还还包含了大量的MQTT客户端项目:https://www.eclipse.org/paho/#2.EMQX使用Erlang语言开发的MQTT服务器,内置强大的规则引擎,支持许多其他IoT协议比如MQTT-SN、CoAP、LwM2M等。3.Mosca使用Node.JS开发的MQTT服务器,简单易用

    2022年5月8日
    51
  • SQLyog中文版安装教程「建议收藏」

    SQLyog中文版安装教程「建议收藏」基本简介SQLyog中文版是一款专业的图形管理软件,SQLyog操作简单,功能强大,能够帮助用户轻松管理自己的MYSQL数据库,SQLyog中文版支持多种数据格式导出,可以快速帮助用户备份和恢复数据,还能够快速地运行SQL脚本文件,为用户的使用提供便捷。相似软件版本说明软件地址 xampp下载 7.1.8win32 查看 xampp 7.1.8w…

    2022年5月28日
    264
  • 矩阵乘以其矩阵转置「建议收藏」

    矩阵乘以其矩阵转置「建议收藏」在推导公式和计算中,常常能碰到矩阵乘以其矩阵转置,在此做个总结。1.假设矩阵A是一个m∗nm∗nm*n矩阵,那么A∗ATA∗ATA*A^T得到一个m∗mm∗mm*m矩阵,AT∗AAT∗AA^T*A得到一个n∗nn∗nn*n的矩阵,这样我们就能得到一个方矩阵。看一个例子:Xθ=HXθ=HX\theta=H求解θθ\theta.XTXθ=XTHXTXθ=XT…

    2022年6月30日
    36
  • java数组按大小排序_Java数组排序

    java数组按大小排序_Java数组排序有的时候需要对数组里的 element 进行排序 当然可以自己编写合适的排序方法 但既然 java 包里有自带的 Arrays sort 排序方法 在数组元素比较少的时候为何不用 SortinganArr 数字排序 int intArray newint 4 1 3 23 Arrays sort intArray 输出 23 1 3 4 2 字符

    2026年3月18日
    2
  • WebGame开发过程中的一些思考和总结

    WebGame开发过程中的一些思考和总结WebGame如今已经很火,市场也很大,盛大和腾讯都已经看中这一块市场。我自己也在做这方面的研发,总结和思考一些问题。

    2022年5月29日
    32

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号