`

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流学习笔记1

    Java IO流是Java编程语言中处理输入输出操作的重要部分,尤其在数据传输、文件读写等方面发挥着核心作用。本文将深入探讨Java IO流的基本概念、类型以及它们在实际开发中的应用。 首先,理解IO流的基本概念至关重要...

    java IO流学习笔记

    ### Java IO流学习笔记 #### 异常处理与IO流操作 在进行Java IO流的学习过程中,异常处理是非常重要的一个方面。本节将详细介绍如何在Java中处理异常,并结合具体的IO流操作进行说明。 #### 一、异常处理 在Java...

    Java 的 IO流笔记.md

    ### Java IO流学习笔记 #### 一、IO流的四大抽象类 - **InputStream/OutputStream**:字节的输入输出流的抽象类。 - 数据单位:字节(8比特,范围0-255) - **Reader/Writer**:字符的输入输出流的抽象类。 - ...

    java基础:IO流学习笔记

    java基础:IO流学习笔记

    io流的学习笔记

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

    Java IO学习笔记+代码

    Java IO是Java编程语言中用于输入/输出操作的重要部分,它提供了一系列的类和方法来处理数据的读写,文件的创建、删除以及流的管理等。以下是对标题和描述中涉及的知识点的详细说明: 1. **文件对象的生成**: 在...

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

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

    Java基础 学习笔记 Markdownr版

    本学习笔记主要涵盖了Java的基础知识,包括面向对象、集合、IO流、多线程、反射与动态代理以及Java 8的新特性等方面,旨在帮助初学者或有经验的开发者巩固和提升Java编程技能。 1. 面向对象(OOP):Java的核心是...

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

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

    javaIO流.xmind

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

    Java 学习笔记Java学习笔记

    Java是一种广泛使用的面向对象的编程语言,由Sun Microsystems(现为Oracle公司的一部分)于1995年发布。...Java学习笔记涵盖了这些核心知识点,通过深入学习和实践,你可以逐步掌握Java编程,并应用于实际项目开发中。

    IO流学习总结

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

    Java学习笔记之IO流

    ### Java学习笔记之IO流 #### 一、IO流概述 在Java中,IO流是用于处理输入输出操作的一种机制,主要包括输入流(Input Stream)和输出流(Output Stream)两大类。通过这些流,我们可以实现对文件的操作,如读取、写入...

    Java-IO流基础例题 & 例题源码 & PPT教学文档(黑马程序员详细版).rar

    提供的源码笔记可以帮助你看到这些概念在实际代码中的应用,通过对例题源码的阅读和调试,加深对Java IO流的理解。例如,你可能会看到如何使用FileInputStream和FileOutputStream读写文件,或者使用DataInputStream...

    java学习笔记markdown

    【Java学习笔记Markdown版】是针对Java初学者和进阶者的一份详尽教程,以Markdown格式编写,便于阅读和整理。Markdown是一种轻量级的标记语言,它允许用户使用易读易写的纯文本格式编写文档,然后转换成结构化的HTML...

    Java入门学习笔记

    "Java入门第二季学习笔记"可能深入到更复杂的主题,如异常处理、集合框架、IO流和线程。异常处理是Java中处理错误的重要机制,使得程序更加健壮。集合框架包括ArrayList、LinkedList、HashSet、HashMap等数据结构,...

Global site tag (gtag.js) - Google Analytics