当前位置: 首页 > article >正文

java读写磁盘文件

字符流读写文本文件(txt,csv等)

/**
 * 字符流写文件
 */
private void writeBufferedWriter() throws IOException {
    String path = "/data/output.txt";
    try (BufferedWriter bw = new BufferedWriter(new FileWriter(path))) {
        bw.write("我是一个文本文件。");
    }
}

/**
 * 字符流读文件
 */
private void readBufferedReader() throws IOException {
    
	String path = "/data/output.txt";
	
	// 逐个char读取 (不推荐)
    try (BufferedReader br = new BufferedReader(new FileReader(path))) {
        int c;
        while ((c = br.read()) != -1) {
            System.out.print((char) c);
        }
    }

    // 行读取 bufferedReader.readLine()
    try (BufferedReader br = new BufferedReader(new FileReader(path))) {
        String line;
        while ((line = br.readLine()) != null) {
            System.out.print(line);
        }
    }

    // 块读取 new char[1024]
    try (BufferedReader br = new BufferedReader(new FileReader(path))) {
        char[] buf = new char[1024];
        int length;
        while ((length = br.read(buf)) != -1) {
            String str = new String(buf, 0, length);
            System.out.print(str);
        }
    }
}

字节流读写音视频、二进制文件等,文本文件也可以但不推荐

/**
 * 字节流写文件
 */
private void writeBufferedOutputStream() throws IOException {
	String path = "/data/output.txt";
	String content = "文件内容";
	// try-with-resources语句‌:这是一种推荐的方法,可以确保在try语句块执行完毕后自动关闭流
    try (BufferedOutputStream bos = new BufferedOutputStream(new FileOutputStream(path))) {
        byte[] bytes = content.getBytes();
        bos.write(bytes);
    }
}

/**
 * 字节流读文件
 */
private void readBufferedInputStream() throws IOException {
	String path = "/data/input.txt";
	// try-with-resources语句‌:这是一种推荐的方法,可以确保在try语句块执行完毕后自动关闭流
    try (BufferedInputStream bis = new BufferedInputStream(new FileInputStream(path))) {
        byte[] buf = new byte[1024];
        int length;
        while ((length = bis.read(buf)) != -1) {
            // 非字符文件,转换出来乱码
			String str = new String(buf, 0, length);
            System.out.print(str);
        }
    }
}

http://www.kler.cn/a/560796.html

相关文章:

  • Oracle Fusion Middleware 12C安装 - 呆瓜式
  • 支持向量机 (Support Vector Machine, SVM)
  • [C语言日寄]以指针进阶:空类型指针与qsort函数
  • Qt Creator 设计界面后的预览方法
  • `sh` 与 `bash` 的区别详解
  • dify本地部署
  • next.js-学习2
  • Python 学习之旅:高级阶段(十六)Web 开发之路由和视图函数
  • Linux 高级篇 日志管理、定制自己的Linux系统、备份与恢复
  • HarmonyOS NEXT通过关系型数据库实现数据的持久化
  • 计算机网络-面试总结
  • 企业财务数据分析-投资回报指标ROA
  • Unity模拟零件拆解组装
  • AI时代的前端开发学习:效率提升与学习曲线
  • Nginx中$http_host、$host、$proxy_host的区别
  • 【蓝桥杯单片机】客观题
  • linux 命令+相关配置记录(持续更新...)
  • Unity中一个节点实现植物动态(Shader)
  • Linux | UDP Socket 编程(C++ 基础demo)
  • Java 集合框架大师课:集合流式编程革命(三)