`

java IO流学习笔记三

    博客分类:
  • java
阅读更多

转换流
inputStreamReader 字节转字符
outputStreamWriter 字符转字节


应用场景
按指定编码转换
示例代码:
public void test() {
try {
// 方法一
FileReader fileReader = new FileReader("a.txt");
// 方法二
InputStreamReader isr = new InputStreamReader(new


FileInputStream("a.txt"));


// 方法三:指定编码形式
InputStreamReader isr1 = new InputStreamReader(new


FileInputStream("a.txt"), "utf-8");


} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
}


}




文件操作


/**
* 当前文件下列表
*/
public static void listFile(File dir, int level) {
System.out.println(getLevel(level) + dir.getName());
level++;
File[] files = dir.listFiles();
for (int i = 0; i < files.length; i++) {
if (files[i].isDirectory()) {// 如果是目录
listFile(files[i], level);
} else {
System.out.println(getLevel(level) + files


[i].getName());
}
}
}


/**
* get
*/
public static String getLevel(int level) {
StringBuilder sb = new StringBuilder();
sb.append("|--");
for (int i = 0; i < level; i++) {
sb.insert(0, "| ");
}
return sb.toString();
}


/**
* 删除一个目录
*/
public static void deleteDir(File dir) {
File[] files = dir.listFiles();
for (int i = 0; i < files.length; i++) {
if (files[i].isDirectory()) {
deleteDir(files[i]);
} else {
files[i].delete();
}
}
}




序列化
objectInputStream
objectOutPutStream


示例代码:




/**
* 实体类需实现序列化接口
* Serializable
* 深度拷贝
*
* @return
*/
public static Serializable deepCopy(Serializable serializable) {
try {
// 构建字节数组输出流
ByteArrayOutputStream baos = new


ByteArrayOutputStream();
// 对象输出流
ObjectOutputStream oos = new ObjectOutputStream


(baos);


// 把对象写入到输出流中
oos.writeObject(serializable);
oos.close();
baos.close();
// 得到对象字节数组
byte[] bs = baos.toByteArray();


// 将字节数组恢复成对象
ByteArrayInputStream bais = new


ByteArrayInputStream(bs);
ObjectInputStream ois = new ObjectInputStream


(bais);
Serializable copy = (Serializable) ois.readObject


();


ois.close();
bais.close();
return copy;


} catch (IOException e) {
e.printStackTrace();
} catch (ClassNotFoundException e) {
e.printStackTrace();
}


return null;
}

分享到:
评论

相关推荐

    java IO流学习笔记

    java IO流学习笔记

    java io流学习笔记1

    NULL 博文链接:https://lpf.iteye.com/blog/1471932

    Java IO学习笔记+代码

    Java IO学习笔记+代码,全面介绍IO中的方法、类,很适合初学者

    io流的学习笔记

    io流学习笔记,主要适合入门的人士学习及观看

    java学习笔记1(java io/nio)

    java学习笔记1(java io/nio)设计模式

    java IO流详解

    文档是关于JAVA常用IO流的学习笔记,可以用于参考,学习。

    java IO流学习笔记——(1)文件字节流

    java IO流学习笔记——(1) IO流总述 • 输入流:数据源到程序(InputStream、Reader读进来) • 输出流:程序到目的地(OutputStream、Writer写出去) 流分类 : • 节点流:可以直接从数据源或目的地读写数据 • 处理...

    javaIO流.xmind

    自己总结的java中IO流的笔记,绘制了详细的思维导图,每个思维导图中均有详细的博文解释,方便大家学习和理解,免费分享给大家。适合java的爱好者和学习者

    java李兴华学习笔记之Java_IO操作

    收集的java李兴华老师的课件笔记。感觉还不错,适合回顾和新手补习。

    java IO流学习笔记——(2)文件字符流&字节数组流

    java IO流学习笔记——(2)文件字符流&字节数组流 文件字符流FileReader&FileWriter FileReader :通过字符的方式读取文件,仅适合字符文件 FileWriter :通过字节的方式写出或追加数据到文件中,仅适合字符文件 部分...

    IO笔记.zip关于javaIO流部分的详细笔记

    这是关于java各个IO流,从节点流到装饰缓冲流的一系列笔记纲要,帮助更好的理解和学习java的IO流

    IO流学习总结

    本文档为本人学习 java IO流期间的学习总结笔记,希望对新学习的朋友有所帮助和参考价值。本人java 开发时间不是太长,可能存在不完善或不对之处,欢迎指正!

    java IO流学习笔记——(3)字节缓冲流&字符缓冲流&转换流&数据流

    目录java IO流学习笔记——(3)字节缓冲流&字符缓冲流&转换流&数据流字节缓冲流 —BufferedInputStream&BufferedOutputStream字符缓冲流—BufferedReader&BufferedWriter转换流—InputStreamReader&...

    java-IO流与异常机制学习笔记

    自己总结,知识点全面,包含了,IO流,异常机制等学习笔记 含有代码实例可供参考,需要mybase打开 持续更新,需要的自行下载 附上本人写的学习博客 https://blog.csdn.net/qq_35577787/article/details/105088073

    Java学习笔记7.0

    《Java JDK6学习笔记》是作者良葛格本人近几年来学习Java的心得笔记,结构按照作者的学习脉络依次展开,从什么是Java、如何配置Java开发环境、基本的Java语法到程序流程控制、管理类文件、异常处理、枚举类型、泛型...

    java学习笔记

    java学习笔记大全:java内容介绍 java编程可以分成三个方向: 1、java se (j2se)桌面开发 java中的基础中的基础 2、java ee (j2ee)web开发 3、java me (j2me)手机开发 java se课程介绍 java面向对象编程(基础) java...

    Java学习笔记之IO流

    详细介绍了IO的用法,基本实现原理,并介绍了序列化与反序列化的实现方法。谢谢

Global site tag (gtag.js) - Google Analytics