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