java 字节流和字符流 (下):它们之间的转换

2025-12-10 01:25:50

1、导入包

import java.io.BufferedReader;

import java.io.BufferedWriter;

import java.io.FileInputStream;

import java.io.FileOutputStream;

import java.io.IOException;

import java.io.InputStreamReader;

import java.io.OutputStreamWriter;

public class Byteandchar {

private static String path="d:\\ggg.txt";       //文件地址

private static String word="hello java Stream!!";  //写入的数据

public Byteandchar(){

}

2、//字节流转化为字符流

//写入流转换

public void OutputstreamtoWriter(){

try{

FileOutputStream o=new FileOutputStream(path,true);//创建字节流   如果没有就新建

OutputStreamWriter ow=new OutputStreamWriter(o);   //转换

//方法一

/*ow.write(word);      //写入文件数据

ow.flush();          //刷新缓冲区    

ow.close();          //关闭数据流

*/

//方法二:加快写入速度

BufferedWriter out=new BufferedWriter(ow); //加快写入速度,使用缓冲区

out.newLine();         //换行

out.write(word);

out.flush();

out.close();

}catch(IOException e){

e.printStackTrace();

}

}

3、//读出数据流转换

public void InputstreamtoReader(){

try{

FileInputStream i=new FileInputStream(path);   //创建数据流

InputStreamReader ir=new InputStreamReader(i);

//方法一:

/*char c[]=new char[1024];

int count=ir.read(c);          //读出数据存放在数组

ir.close();

System.out.println(new String(c,0,count));

*/

//方法二:高效方法

BufferedReader br=new BufferedReader(ir);    //创建缓冲数据流

String str=null;           //存放每行的数据

while((str=br.readLine())!=null){// 一次读取一行的数据readLine()

System.out.println(str);

}

br.close();  //关闭数据流

}catch(IOException e){

e.printStackTrace();

}

}

4、//测试

public static void main(String[] args) {

//new Byteandchar().OutputstreamtoWriter();

//new Byteandchar().InputstreamtoReader();

}

}

声明:本网站引用、摘录或转载内容仅供网站访问者交流或参考,不代表本站立场,如存在版权或非法内容,请联系站长删除,联系邮箱:site.kefu@qq.com。
猜你喜欢