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

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

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.net/106296.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • pr-常用操作

    pr-常用操作

    2021年5月17日
    115
  • php js页面刷新,JS刷新页面方法总结

    php js页面刷新,JS刷新页面方法总结这次给大家带来JS刷新页面方法总结,JS刷新页面的注意事项有哪些,下面就是实战案例,一起来看一下。JS刷新当前页面的几种方法总结reload方法,该方法强迫浏览器刷新当前页面replace方法,该方法通过指定URL替换当前缓存在历史里(客户端)的项目,因此当使用replace方法之后,你不能通过“前进”和“后退”来访问已经被替换的URL返回并刷新页面自动刷新页面的方法js刷新页面方法大全页面自…

    2022年7月14日
    15
  • 利用树莓派搭建 web 服务器 (个人认为是网上步骤最全,也是最新的方式了 使用 PHP7)[通俗易懂]

    利用树莓派搭建 web 服务器 (个人认为是网上步骤最全,也是最新的方式了 使用 PHP7)[通俗易懂]#前言在暑假的时候想玩玩树莓派,就买了一块树莓派3B+,结果买回来也没太玩就放在宿舍吃灰,最近突然对网站很感兴趣,于是就在网上查找资料去搭建了这个web服务器,它是使用的nginx+PHP7+typecho组成的服务器。#首先安装raspbian系统引用了树莓派实验室的下载地址,大家可以直接下载。下载链接:http://downloads.raspberrypi.org/raspbian_…

    2022年6月6日
    32
  • Java0xffffffff为什么表示为-1

    Java0xffffffff为什么表示为-1inti=0xffffffff;System.out.println(i);输出-1上面的程序有个问题为什么inti=0xffffffff;没有报溢出错误,且输出为-1?因为0xffffffff实际是二进制,程序中任何十进制,八进制,16进制的数在计算机底层都是二进制,表示成X进制只是为了让人看明白,所以0xffffffff在电脑中就是32个1,而不是2的32次…

    2022年5月16日
    39
  • word在试图打开文件时遇到错误,解决办法

    word在试图打开文件时遇到错误,解决办法有时候下载或别人发给你的文件用自己的电脑上的Word打不开,会出现下面的提示怎么办呢查后找到了一种解决办法:打开Word,选择-文件-选项点击左侧的信任中心按钮,然后选择右侧的信任中心设置进入信任中心后点击左侧的受保护视图选项卡,默认是三个选项都被选中的,如图取消勾选第一个选项“为来自Internet的文件启用受保护的视图”,点击确定后推出,然后重新打开…

    2022年4月29日
    74
  • linux服务器,卸载tensorflow CPU 安装PGU版

    linux服务器,卸载tensorflow CPU 安装PGU版linux服务器,卸载tensorflowCPU安装PGU版写在前面之前用的和学习的都是pytorch框架,现在要运行一个keras的代码,得安装tensorflow和keras,按一个教程,直接在pycharm里setting,点那个+很快就装好了tensorflow和keras,运行了几次发现运行特别慢,用nvidia-smi查看,发现根本没有用pgu跑,一番查找,最后发现安装的tensorflow本身是按CPU跑的,要用GPU跑,得安装tensorflow-gpu。以下主要参考了https

    2022年6月22日
    47

发表回复

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

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