Java字符流和字节流对文件操作的区别 一、java的IO流分两种流:1、字节流 InputStream OutputStream2、字符流 Reader Writer他们都是抽象类二、他们的区别:1、字符流处理的单元为2个字节的Unicode字符,分别操作字符、字符数组或字符串,而字节流处理单元为1个字节,操作字节和字节数组。所以字符流是由Java虚拟机将字节转化为2个字节的Unicode字符为单位的字符而成的,所以它对多国语言支持性比较好!如果是音频文件、图片、歌曲,就用字节流好点,如果是关系到中文(文本)的,用字符流好点.所有文件的储存是都是字节(byte)的储存,在磁盘上保留的并不是文件的字符而是先把字符编码成字节,再储存这些字节到磁盘。在读取文件(特别是文本文件)时,也是一个字节一个字节地读取以形成字节序列.2、字节流可用于任何类型的对象,包括二进制对象,而字符流只能处理字符或者字符串;字节流提供了处理任何类型的IO操作的功能,但它不能直接处理Unicode字符,而字符流就可以。字节流转换成字符流可以用 InputSteamReader OutputStreamWriter字节流转换成InputStreamReaderInputStreamReader inputStreamReader=new InputStreamReader(fileInputStream);InputStreamReader 转换成带缓存的。
java字节流,字符流问题怎么判断一个文件要用字节流还是用字符流 一、流的概念和作用学习Java IO流,我是真的有点无语啊。相信很多学习Java的朋友在起初学习Java IO的时候都会觉得很简单,可是真正用的使用的时候又措手不及,这是一个比较正常的现象,这不能怪你,因为Java设计者在设计Java IO这个类库时,就已然注定了这样蛋疼的一个局面。Java IO的学习之难,主要有两点:其一是构建一个实例需要借助其他的一个或多个实例,其次是类多而杂。你需要以一种俯瞰的视角来对待Java IO,只要你了解了Java IO类库的层次关系,你就可以很好的使用它了,是不是很激动.^_^,下面让我们来看看流的概念:流:是一组有顺序的,有起点和终点的字节集合,是对数据传输的总称和抽象。即数据在两设备间的传输成为流,流的本质是数据传输,根据数据传输特性将流抽象为各种类,方便更直观的进行数据操作。二、流的分类根据处理数据类型的不同分:字符流和字节流根据数据流向不同分为:输入流和输出流三、字符流和字节流字符流的由来:因为数据编码的不同,而有了对字符进行高效操作的流对象。本质其实就是基于字节流读取时,去查了指定的码表。字节流和字符流的区别:(1)读写单位不同:字节流以字节(8bit)为单位,字符流以字符(16bit)为。
Java用字符流读写文件
java分别以字节流和字符流的两种方式读取文件内容 import java.io.BufferedReader;import java.io.File;import java.io.FileInputStream;import java.io.IOException;import java.io.InputStreamReader;import java.io.PrintWriter;public class Test10 {复制当前的源程序到项目的根目录throws IOExceptionpublic static void main(String[]args)throws IOException {1:读取原文件2:项目标文件中写3:使用缓冲流按行读写FileInputStream fis=new FileInputStream(\"src\"+File.separator+\"day01\"+File.separator+\"Test1.java\");转化为字符输出流InputStreamReader isr=new InputStreamReader(fis);按行为单位读取字符串BufferedReader br=new BufferedReader(isr);PrintWriter pw=new PrintWriter(\"Test1.java\");String line=null;while((line=br.readLine())。null){pw.println(line);}pw.close();br.close();}}
在JAVA中如何①利用字符流读写一个指定文本文件。②利用读写器类实现对指定文本的读写。 import java.io.BufferedReader;import java.io.FileInputStream;import java.io.FileOutputStream;import java.io.IOException;import java.io.InputStreamReader;import java.io.OutputStreamWriter;public class ReaderAndWriter {param path 完整路径 如 c:\\test.txtparam charset 字符集,若为null采用平台默认字符集throws IOExceptionpublic void read(String path,String charset)throws IOException {BufferedReader reader=null;InputStreamReader isr=null;try {if(null。charset){isr=new InputStreamReader(new FileInputStream(path),charset);}else{isr=new InputStreamReader(new FileInputStream(path));}reader=new BufferedReader(isr);String tmp=reader.readLine();while(null。tmp){System.out.println(tmp);tmp=reader.readLine();}} finally{if(null。reader){reader.close();}}}param path 文件绝对路径 如 c:\\test.txt,若文件存在,则覆盖内容param content 要写入文件的内容param charset 字符集,若为null,则采用平台默认字符集throws IOExceptionpublic void write(String path,String content,String charset)。
java 中简述使用流进行读写文本文件的步骤? 读写是两个不同的分支,通常都是分开单独使用的。可以通过BufferedReader 流的形式进行流缓存,之后通过readLine方法获取到缓存的内容。BufferedReader bre=null;try {String file=\"D:/test/test.txt;bre=new BufferedReader(new FileReader(file));此时获取到的bre就是整个文件的缓存流while((str=bre.readLine())。null)/判断最后一行不存在,为空结束循环{System.out.println(str);原样输出读到的内容};备注:流用完之后必须close掉,如上面的就应该是:bre.close(),否则bre流会一直存在,直到程序运行结束。可以通过“FileOutputStream”创建文件实例,之后过“OutputStreamWriter”流的形式进行存储,举例:OutputStreamWriter pw=null;定义一个流pw=new OutputStreamWriter(new FileOutputStream(“D:/test.txt”),\"GBK\");确认流的输出文件和编码格式,此过程创建了“test.txt”实例pw.write(\"我是要写入到记事本文件的内容\");将要写入文件的内容,可以多次writepw.close();关闭流备注:文件流用完之后必须及时通过close方法关闭,否则会一直处于打开状态,直至程序停止,增加系统负担。
JAVA字符流方式读取文件 问题。 public class ReadFromFile {以字节为单位读取文件,常用于读二进制文件,如图片、声音、影像等文件。public static void readFileByBytes(String fileName){File file=new File(fileName);InputStream in=null;try {System.out.println(\"以字节为单位读取文件内容,一次读一个字节:\");一次读一个字节in=new FileInputStream(file);int tempbyte;while((tempbyte=in.read())。1){System.out.write(tempbyte);}in.close();} catch(IOException e){e.printStackTrace();return;}try {System.out.println(\"以字节为单位读取文件内容,一次读多个字节:\");一次读多个字节byte[]tempbytes=new byte[100];int byteread=0;in=new FileInputStream(fileName);ReadFromFile.showAvailableBytes(in);读入多个字节到字节数组中,byteread为一次读入的字节数while((byteread=in.read(tempbytes))。1){System.out.write(tempbytes,0,byteread);}} catch(Exception e1){e1.printStackTrace();} finally {if(in。null){try {in.close();} catch(IOException e1){}}}}以字符为单位读取文件,常用于读文本,数字等类型的文件public static void readFileByChars(String 。
java字符流读写数据 就是序列化和反序列化,就是将对象转化字符序列,将字符序列转为对象的过程packagecom.tx.test;import java.io.FileInputStream;import java.io.FileNotFoundException;import java.io.FileOutputStream;import java.io.IOException;import java.io.ObjectInputStream;import java.io.ObjectOutputStream;import java.util.ArrayList;import java.util.List;public class test{public static void main(String[]args)throws FileNotFoundException,IOException {List<;Student>;list=new ArrayList();list.add(new Student(\"as\",\"男\",14));list.add(new Student(\"ass\",\"男\",18));ObjectOutputStream oos=new ObjectOutputStream(new FileOutputStream(\"data/out.txt\"));输出流保存的文件名为 my.out;ObjectOutputStream能把Object输出成Byte流oos.writeObject(list);oos.close();序列化完毕System.out.println(\"序列化完毕\");反序列化ObjectInputStream oin=null;oin=new ObjectInputStream(new FileInputStream(\"data/out.txt\"));List<;Student>;stulist=null;try {stulist=(List)oin.readObject();} catch(ClassNotFoundException e){e.printStackTrace();}。