解决中文读取问题
转换流(都是字符流)
OutputStreamWriter
-
是字符流通向字节流的桥梁:字符—>字节
-
是一个字符流:extends Write
-
方法:写一个字符、字符数组、字符数组的一部分
-
构造:
//参数为OutputStream的子类,通过多态方式接收,如:FileOutPutStream
public OutputStreamWriter(OutputStream out);
InputStreamReader
-
是字节流通向字符流的桥梁:字节—>字符
-
是在一个字符流:extends Reader
-
构造
//输入流时,可指定某种码表方式读入,如:Unicode编码、utf-8、GBK
public InputStreamReader(InputStream In); //默认查询GBK
public InputStreamReader(InputStream In,String charsetName); //查询指定码表
- 实例
InputStreamReader isr = new InputStreamReader(new FileInputStream("DBK.txt")); //创建输入字符流对象
int value = isr.read(); //读入一个字符,和FileIputStream读入方式一样
system.out.println((char)value);
序列化流与反序列化流
序列化流(ObjectOutputStream)
-
写对象到文件
-
构造
public ObjectOutputStream(OutputStream out);
- 方法
public void writeObject(Object obj); //此方法中的Object对象必须实现Serializable接口
反序列化流(ObjectInputStream)
-
读从文件中读对象,字节输入流
-
构造
public ObjectInputStream(InputStream in);
- 方法
public Object readObject(); //从指定文件中,读入一个对象
Transient关键字:修饰成员变量,序列化时忽略此变量
打印流
PrintWriter(打印字符流)
- 可打印的目的地(4种)
- 字符串的文件名
- File对象
- 其他的OutputStream
- 其他的Writer流
PrintStream(打印字符流)
- 可打印的目的地(3种)
- 字符串的文件名
- File对象
- 其他的OutputStream
Commons-IO框架
Commons-IO框架是Apache Commons IO是Apache基金会创建并维护的Java函数库
FileUtil类中的静态方法
- 将内容content写入file
public static void writeStringToFile(File file,String content)
- 读取file文件内容,并返回一个String
public static String readFileToString(File file)
- 文件复制
public static void copyFile(File srcFile,File destFile)
- 文件夹复制
//将srcDir(内可含文件夹)文件中的所有文件复制带destDir文件中
public static void copyDirectoryToDirectory(File srcDir,File destDir)