Java SE 095 Java字符流详解 续

tech2023-01-11  104

(1)一个人只要自己不放弃自己,整个世界也不会放弃你. (2)天生我才必有大用 (3)不能忍受学习之苦就一定要忍受生活之苦,这是多么痛苦而深刻的领悟. (4)做难事必有所得 (5)精神乃真正的刀锋 (6)战胜对手有两次,第一次在内心中. (7)编写实属不易,若喜欢或者对你有帮助记得点赞+关注或者收藏哦~

Java SE 095 Java字符流详解 续

文章目录

Java SE 095 Java字符流详解 续1.FileWriter1.1将字符串输出到字符数组1.2字符数组读取2.随机访问文件类

1.FileWriter

(1)FileWriter创建一个可以写文件的Writer类。FileWriter继承于OutputStreamWriter。它最常用的构造方法如下: FileWriter(String filePath); FileWriter(String filePath,boolean append); FileWriter(File fileObj) append:如果为true,则将字节写入文本末尾处,而不是写入文件开始处。

1.1将字符串输出到字符数组

package com.javareview.io.stream.filewriter; import java.io.FileWriter; import java.io.IOException; /** * 将字符串输出到字符数组 */ public class FileWriterTest { public static void main(String[] args) throws IOException { String str = "hello world welcome nihao"; //FileWriter操纵的是字符或者是字符数组,字符串与字符数组是两个不同的对象,可以将其转换成字符数组 char[] buffer = new char[str.length()]; //将字符串儿里面的内容复制到buffer数组 str.getChars(0, str.length(), buffer, 0); FileWriter writer = new FileWriter("file2.txt"); for(int i = 0 ; i < buffer.length; i++){ writer.write(buffer[i]); } writer.close(); } }

1.2字符数组读取

package com.javareview.io.stream.filewriter; import java.io.CharArrayReader; import java.io.IOException; public class CharArrayReaderTest { public static void main(String[] args) throws IOException { String tmp = "Liu Manlin I love you!"; char[] ch = new char[tmp.length()]; tmp.getChars(0, tmp.length(), ch, 0); CharArrayReader car = new CharArrayReader(ch); int i; while(-1!=(i = car.read())){ System.out.println((char)i); } } }

2.随机访问文件类

注意:这个类既能读,又能写!

package com.javareview.io.stream.randomaccessfile; import java.io.IOException; import java.io.RandomAccessFile; public class RandomAccessFileTest { public static void main(String[] args) throws IOException { Person p = new Person(1,"Jie Lin",160); RandomAccessFile raf = new RandomAccessFile("test.txt","rw"); p.write(raf); Person p1 = new Person(); raf.seek(0);//让读的位置重新回到文件开头 p1.read(raf); System.out.println(p1.id+" "+p1.name+" "+p1.height); } } class Person{ int id; String name; double height; public Person(){ } public Person(int id,String name,double height){ this.id = id; this.name = name; this.height = height; } /** * 不管是读还是写,它们都接收一个RandomAccessFile这样一个对象 * 如果是写这样一个对象,就将其写入一个RandomAccessFile文件里面 * 如果要是读的话,就从RandomAccessFile所对应的文件里面把信息再给读回来,但是不管是读还是写,要 * 注意的一点就是它们读写内容的顺序一定要一致才可以。因为写入文件之后,都是以bit的形式存放成二进制文件, * 所以当读取的时候,写的时候写进去的内容占多少位,那么读就需要按多少位读取出来 * @param raf * @throws IOException */ public void write(RandomAccessFile raf) throws IOException{ raf.writeInt(id); raf.writeUTF(name); raf.writeDouble(height); } public void read(RandomAccessFile raf) throws IOException{ this.id = raf.readInt(); this.name = raf.readUTF(); this.height = raf.readDouble(); } }
最新回复(0)