Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >java向文件中写入内容,字节流,字符流,缓冲,复制文件,设置字符编码 实例

java向文件中写入内容,字节流,字符流,缓冲,复制文件,设置字符编码 实例

作者头像
全栈程序员站长
发布于 2022-06-30 05:10:00
发布于 2022-06-30 05:10:00
96500
代码可运行
举报
运行总次数:0
代码可运行
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
package com.liuxin.test;

import java.io.BufferedOutputStream;
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.FileWriter;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;

public class Write {

	public static void main(String[] args)throws Exception {
		//2017年9月30日 下午1:48:23
		String contentString="shide 的大的呃呃";
		String fileName="D://3.txt";
		System.out.println("----------一段字符串以字节流写入文件------------");
		writeByte(contentString,fileName);
		System.out.println("----------一段字符串以字符流写入文件------------");
		writeChar(contentString,fileName);
		System.out.println("----------一段字符串通过缓冲流以字节流写入文件------------");
		writeByteBuffer(contentString,fileName);
		System.out.println("----------一段字符串通过缓冲流以字符流写入文件------------");
		writeCharBuffer(contentString,fileName);
		System.out.println("----------一段字符串通过缓冲流以字符流写入文件,并这只字体编码------------");
		writeCharSetEncode(contentString,fileName);
		System.out.println("------------复制文件------------------");
		readAndWrite();
		
		
	}

	private static void readAndWrite() throws Exception{
		//2017年9月30日 下午3:20:00
		FileInputStream is=new FileInputStream("D://1.txt");
		InputStreamReader isr=new InputStreamReader(is, "gbk"); //设置编码
		BufferedReader br=new BufferedReader(isr);
		File file=new File("D://4.txt");
		
		if(file.exists()){//文件存在着先删除
			file.delete();
		}
		FileOutputStream os=new FileOutputStream("D://4.txt",true);//ture表示追加写入。如果不需要追加写入就直接去掉这个参数就行
		OutputStreamWriter osw=new OutputStreamWriter(os,"gbk");//设置编码
		BufferedWriter bw=new BufferedWriter(osw);
		String tempReadString=null;
		while((tempReadString=br.readLine())!=null){
			bw.write(tempReadString);
			bw.newLine();//换行
		}
		br.close();
		isr.close();
		is.close();
		bw.close();
		osw.close();
		os.close();
	}

	private static void writeCharSetEncode(String contentString, String fileName) throws Exception {
		//2017年9月30日 下午3:10:55
		FileOutputStream fw=new FileOutputStream(fileName,true);//ture表示追加写入。如果不需要追加写入就直接去掉这个参数就行
        OutputStreamWriter osw=new OutputStreamWriter(fw,"gbk");
		BufferedWriter bw=new BufferedWriter(osw);
		bw.newLine();//换行
		bw.write(contentString);
		bw.close();
		fw.close();
	}

	private static void writeCharBuffer(String contentString, String fileName) throws Exception {
		//2017年9月30日 下午3:06:06
		FileWriter fw=new FileWriter(fileName,true);//ture表示追加写入。如果不需要追加写入就直接去掉这个参数就行
		BufferedWriter bw=new BufferedWriter(fw);
		bw.newLine();
		bw.write(contentString);
		bw.close();
		fw.close();
	}

	private static void writeByteBuffer(String contentString, String fileName) throws Exception {
		//2017年9月30日 下午2:30:11
		FileOutputStream os=new FileOutputStream(fileName,true);//ture表示追加写入。如果不需要追加写入就直接去掉这个参数就行
		BufferedOutputStream bos=new BufferedOutputStream(os);
		bos.write(contentString.getBytes());
		bos.write("\r\n".getBytes());  //换行追加
		bos.write("一段字符串通过缓冲流以字节流写入文件".getBytes());
		bos.write("追加内容".getBytes());
		bos.close();
		os.close();
	}

	private static void writeChar(String contentString,String fileName)throws Exception {
		//2017年9月30日 下午2:18:20
		FileWriter fw=new FileWriter(fileName,true);//ture表示追加写入。如果不需要追加写入就直接去掉这个参数就行
		fw.write(contentString);
		fw.close();
	}

	private static void writeByte(String contentString,String fileName) throws Exception{
		//2017年9月30日 下午1:55:39
		FileOutputStream os=new FileOutputStream(fileName);
		os.write(contentString.getBytes());
		os.close();
	}

	
}

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

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2021年7月1,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
Java学习笔记之字节缓冲流&字符流&IO流练习
    BufferOutputStream:该类实现缓冲输出流,通过设置这样的输出流,应用程序可以向底层输出流写入字节,而不必为写入的每个字节频繁调用系统底层
Jetpropelledsnake21
2021/12/31
5470
Java学习笔记之字节缓冲流&字符流&IO流练习
Java基础-21(01)总结字符流,IO流编码问题,实用案例必做一遍
1:字符流(掌握) // 字节流读取中文可能出现的小问题(所以用字符流输入输出中文) package cn.itcast_01; import java.io.FileInputStream; import java.io.IOException; /* * 字节流读取中文可能出现的小问题: */ public class FileInputStreamDemo { public static void main(String[] args) throws IOException { // 创建字
Java帮帮
2018/03/16
1.2K0
Java成神路 —— 字节缓冲流 && 字符流
0. 字符流与字节流 1.字节缓冲流 1.1 字节缓冲流构造方法 1. 字节缓冲流介绍 lBufferOutputStream:该类实现缓冲输出流。 通过设置这样的输出流,应用程序可以向底层输出流写入字节,而不必为写入的每个字节导致底层系统的调用 lBufferedInputStream:创建BufferedInputStream将创建一个内部缓冲区数组。 当从流中读取或跳过字节时,内部缓冲区将根据需要从所包含的输入流中重新填充,一次很多字节 2. 构造方法 方法名 说明 BufferedOutputS
繁依Fanyi
2023/05/07
3520
Java成神路 —— 字节缓冲流 && 字符流
java基础io流——字符流的变革(深入浅出)
在io流里,先诞生了字节流,但是字节流读取数据会有乱码的问题(读中文会乱码)。比如:
100000860378
2018/09/13
5130
java基础io流——字符流的变革(深入浅出)
【Java基础-3】吃透Java IO:字节流、字符流、缓冲流
IO流是Java中的一个重要构成部分,也是我们经常打交道的。这篇关于Java IO的博文干货满满,堪称全网前三(请轻喷!)
全栈程序员站长
2022/09/13
5340
day17-缓冲流&转换流&序列化流&打印流&Properties
前期我们学习了基本的一些流,作为IO流的入门,今天我们要见识一些更强大的流。比如能够高效读写的缓冲流,能够转换编码的转换流,能够持久化存储对象的序列化流等等。这些功能更为强大的流,都是在基本的流对象基础之上创建而来的,就像穿上铠甲的武士一样,相当于是对基本流对象的一种增强。
张哥编程
2024/12/13
1190
javaIo之字符流
从提供的构造方法的·参数我们可以了解到这个实现类基本的底层还是有字节流的实现。或者可以跟进源码。
兰舟千帆
2022/07/16
3040
javaIo之字符流
文件的字节流和字符流
该文章介绍了文件读写和序列化在编程中的应用。首先介绍了如何使用Java中的字节流和字符流进行文件读写操作,包括使用FileInputStream和FileOutputStream进行字节流读写,以及使用FileReader和FileWriter进行字符流读写。然后介绍了如何使用Java中的ObjectOutputStream和ObjectInputStream进行序列化操作,将对象序列化为字节流保存到文件中,或者将字节流反序列化为对象。此外,还介绍了在Java中如何使用文件锁来保护文件不被其他线程同时访问,以及如何使用序列化器来序列化和反序列化对象。
用户1171305
2017/12/28
6670
java_缓冲流、转换流、序列化流
缓冲流的基本原理,是在创建流对象时,会创建一个内置的默认大小的缓冲区数组,通过缓冲区读写,减少系统IO次数,从而提高读写的效率。
咕咕星
2020/08/19
4500
文件类以及IO输入输出
需求:给定一个路径,请通过递归完成遍历该目录下所有内容,并把文件的绝对路径输出在控制台
秋落雨微凉
2022/10/25
6730
IO流:字节流 字符流 缓冲流详解
大家好,我是默语。今天我们来聊一聊Java中的IO流,包括字节流、字符流和缓冲流。本文将详细介绍这些流的概念、分类、使用方法,并通过具体的代码示例演示如何在项目中灵活应用这些流。让我们一起深入探索吧!✨
默 语
2024/11/20
1670
十五、IO流【黑马JavaSE笔记】(本文文中记录了个人学习感受)
finally:在异常处理时提供finally块来执行所有清除操作。比如说IO流中的释放资源
啵啵鱼
2022/11/23
4910
十五、IO流【黑马JavaSE笔记】(本文文中记录了个人学习感受)
IO流你了解多少
🧑个人简介:大家好,我是 shark-Gao,一个想要与大家共同进步的男人😉😉
程序员Leo
2023/08/02
2940
IO流你了解多少
重新java系列之IO流
当使用字节流读取文本文件时,可能会有一个小问题。就是遇到中文字符时,可能不会显示完整的字符,那是因为一个中文字符可能占用多个字节存储。所以Java提供一些字符流类,以字符为单位读写数据,专门用于处理文本文件。
大忽悠爱学习
2022/05/06
7870
重新java系列之IO流
Java IO(IO流)-2
该文章介绍了Java中的IO流,包括OutputStreamWriter、InputStreamReader、OutputStream、InputStream、BufferedOutputStream、BufferedInputStream、BufferedReader、BufferedWriter等类。这些类都是Java中的流处理类,用于在Java程序中处理输入输出操作。
李家酒馆酒保
2017/12/28
1.1K0
Java IO(IO流)-2
Java知识--IO流操作(二)
Java缓冲流其实本身是不具有IO功能,它是在原始IO流上增加了缓冲功能,使其在传输数据上提高效率,我们也称为装饰流。当需求需要频繁操作读写文件或者传输数据时,使用缓冲流先将数据缓存起来,然后一起写入或读取出来,这样效率会大大提高。
程序员小猿
2021/01/18
3070
Java知识--IO流操作(二)
关于什么是IO流
需要转换—转换流InputStreamReader、OutputStreamWriter
用户9399690
2022/01/20
8420
关于什么是IO流
第二十二天 IO-高效流(缓冲流)&转换流【悟空教程】
在我们学习字节流与字符流的时候,大家都进行过读取文件中数据的操作,读取数据量大的文件时,读取的速度会很慢,很影响我们程序的效率,那么,我想提高速度,怎么办?
Java帮帮
2018/07/26
1.3K0
第二十二天 IO-高效流(缓冲流)&转换流【悟空教程】
大数据必学Java基础(七十一):比对非文本文件复制的三种方法的效率
InputStreamReader,OutputStreamWriter实现文本文件的复制
Lansonli
2022/10/11
3100
大数据必学Java基础(七十一):比对非文本文件复制的三种方法的效率
【Java】缓冲流、转换流、序列化流
昨天学习了基本的一些流,作为IO流的入门,今天我们要见识一些更强大的流。比如能够高效读写的缓冲流,能够转换编码的转换流,能够持久化存储对象的序列化流等等。这些功能更为强大的流,都是在基本的流对象基础之上创建而来的,就像穿上铠甲的武士一样,相当于是对基本流对象的一种增强。
陶然同学
2023/02/27
3520
【Java】缓冲流、转换流、序列化流
相关推荐
Java学习笔记之字节缓冲流&字符流&IO流练习
更多 >
领券
💥开发者 MCP广场重磅上线!
精选全网热门MCP server,让你的AI更好用 🚀
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验