Java中三种文件流写入字符串的方法
来源:互联网 发布:杜兰特数据 编辑:程序博客网 时间:2024/06/03 06:21
一.DataOutputStream类提供了如下3种写入字符串的方法:
1.writeByte(String s);
2.writeChars(String s);
3.writeUTF(String s);
二.三种方法的稳定性
其中,前两种方法主要用于操作基本数据类型字节(Byte)和字符(Char)的写入,而第三种主要用于操作字符串(String)的读取。由于Java中的字符是Unicode编码的,是双字节的。
writeBytes只会将字符串中的每一字符的低字节内容写入目标设备中,所以会存在丢失数据的可能性。如果你写的是"a"这个String,当它取出'a'这个字符后,强转为Byte,由于字符'a'完全可以用一个字节表示,所以没有丢失数据。但如果你写的是这个String包含中文,比如"你"(由于中文是用两个字节编码的),当它取出'你'这个字符后,强转为byte,由于字符'你'必须用2个字节才能表示,所以丢失数据。
writeChars方法也是依次取出每一个字符,分别写入底层的流中。因为每个字符占2个字节,所以对于每一个字符,也必须连续写入2个字节才能完整的表示。使用writeChars写入String不会造成数据的丢失,但是如果想取出写入的String,则必须要知道原String的长度,通过控制连续读取的字节数来读取。
writeUTF将字符申按照UTF编码后的字节长度写入目标设备,然后才是每一个字节的UTF编码,不存在丢失数据的风险,而且只有writeUTF方法向目标设备中写入字符串的长度,所以也能准确地读回写入字符申。
三.使用例子
import java.io.DataInputStream;import java.io.DataOutputStream;import java.io.FileInputStream;import java.io.FileOutputStream;public class Test {public static void main(String[] args) {try { FileOutputStream fs=new FileOutputStream("D:/test.txt"); DataOutputStream ds=new DataOutputStream(fs); //writeUTF可以直接写入数据,不会丢失数据 ds.writeUTF("使用writeUTF()方法写入数据;"); //writeChars首先要写入String的长度,不会丢失数据 String s=new String("使用writeChars()方法写入数据;"); ds.writeInt(s.length());ds.writeChars(s); //writeChars首先要写入String的长度,会丢失数据 String s1=new String("使用writeBytes()方法写入数据;"); ds.writeInt(s1.length()); ds.writeBytes(s1);ds.close(); FileInputStream fis=new FileInputStream("D:/test.txt"); DataInputStream dis=new DataInputStream(fis); System.out.println(dis.readUTF());//从流中直接读取writeUTF写入的数据 int len=dis.readInt();//先从流中读取wirteChars写入的数据长度,才能知道要完整读取数据 for(int i=0;i<len;++i) System.out.println(dis.readChar()); int len1=dis.readInt();//先从流中读取wirteBytes写入的数据长度,才能知道要完整读取数据,数据失真 for(int i=0;i<len1;++i) System.out.print(dis.readByte()+" "); }catch (Exception e){ e.printStackTrace(); } }}
1 0
- Java中三种文件流写入字符串的方法
- 【JAVA笔记】将字符串信息写入xml文件的方法
- java 字符串写入文件
- java 写入文件方法
- java中写入文件的方法
- java 写入文件的几种方法
- Java写入文件的几种方法
- java写入文件的几种方法
- java写入字符串到文件
- Java追加写入文件方法
- java写入文件方法整合
- tinyxml把xml数据写入字符串,不写入文件的方法
- java将String字符串写入文件
- Java字符串写入文件三种方式
- java字符串写入文件及换行问题
- Java创建文件并写入字符串
- java将字符串写入到文件中
- java、Android 字符串、json写入文件
- web 列表切换
- Android中AlarmManager的几个重要方法详解
- Tomcat IP访问限制配置
- MySQL的Master-Slave复制配置步骤
- EventBus的使用
- Java中三种文件流写入字符串的方法
- 给numpy矩阵添加一列
- android_32_为mac版Eclipse配置JRE
- 从git拉源码maven构建后部署脚本
- 经受时延的确认(Delay ACK)
- URL跳转漏洞的危害
- MySQL协议分析(结合PyMySQL)
- PHP自学笔记 ---李炎恢老师PHP第一季 TestGuest0.9/1.0 提交数据
- Ubuntu中用sudo apt-get install安装某软件,结果出错:E: Unable to locate