java学习系列(一)Java中的IO操作

Java的IO流是实现输入/输出的基础,它可以方便地实现数据的输入\输出操作,在Java中把不同的输入\输出源抽象为"流",通过流的方式允许Java程序使用相同的方式来访问不同的输入/输出源。stream是从起源(source)到接收(sink)的有序数据。

Java把所有传统的流类型(类或抽象类)都放在java.io包中,用以实现输入\输出功能。

JavaAPI 1.6中java.io包

1.子节流
 * 输入字节流
 * -------------|InputStream 所有输入字节流的基类,抽象类
 * -----------------|FileInputStream 读取文件的输入字节流。
 *     ----------------|BufferedInputStream    缓冲输入字节流。该类内部其实就是维护了一个8Kb字节数组。该类的出现的买的就是提高读取文件数据的效率。
 * 输出字节流
 * -------------OutputStream 所有输出字节流的基类,抽象类
 * -----------------|FileInputStream 写入文件的输出字节流
 * -----------------|BUfferedOutputStream 缓冲写入字节流。该类的内部同样维护了一个8kb的字节数组。提高文件写入效率。
 *
 2.字符流
 * 字符流 = 字节流 + 编码
 * 输入字符流
 * ------------|Reader 所有输入字符流的基类,抽象类
 * ----------------|FileReader 读取文件字符的输入字符流
 * ----------------|BufferedReader 缓冲输入字符流。该类的内部同样维护一个8192长度的字符数组.
 * 输出字符流
 * ------------|Writer 所有输出字符流的基类,抽象类
 * ----------------|FileWriter 写入文件字符的是输出字符流
 * ----------------|BufferedWriter 缓冲输出字符流。该类的内部同样维护一个8192长度的字符数组。
 *
 3. 转换流:
 *输入转换流的基类InputStreamReader
 *输出转换流的基类OutputStreamWriter
 *转换流的作用:可以将对应的字节流转换成字符流使用;可以指定码表进行文件的数据.
 4.一个实例,移动文件

 1 public static void copy(String src, String desc) throws Exception {
 2
 3         File srcFile = new File(src);
 4         File descFile = new File(desc);
 5         InputStream in = null;
 6         OutputStream out = null;
 7         try {
 8             in = new FileInputStream(srcFile);
 9             out = new FileOutputStream(descFile);
10             int len = -1;
11             byte[] bytes = new byte[1024 * 1024];
12             while ((len = in.read(bytes)) != -1) {
13                 out.write(bytes, 0, len);
14             }
15         } catch (FileNotFoundException e) {
16             e.printStackTrace();
17         } catch (IOException e) {
18             e.printStackTrace();
19         } finally {
20             in.close();
21             out.close();
22         }
23
24     }
25 }

2016-05-10 gongchao1212

时间: 2024-08-06 11:56:57

java学习系列(一)Java中的IO操作的相关文章

Java学习-040-级联删除目录中的文件、目录

之前在写应用模块,进行单元测试编码的时候,居然脑洞大开居然创建了一个 N 层的目录,到后来删除测试结果目录的时候,才发现删除不了了,提示目录过长无法删除.网上找了一些方法,也找了一些粉碎机,都没能达到想要的结果,我就简写了一个小应用,用于删除自己脑洞大开创建的级联目录.此小应用没有代码注释,也没有进行容错处理,请大家知悉!哈哈哈哈哈.....若发现有错误,也请告知,我会去修改订正,非常感谢! 闲话少述,直接上码了! 1 /** 2 * Aaron.ffp Inc. 3 * Copyright (

好程序员Java学习路线分享JS中的面向对象

好程序员Java学习路线分享JS中的面向对象,在JS中,一般情况下我们都是直接写函数,直接调用,但是发现JS中也有new关键字,那么new关键字作为创建对象的关键字,给我们的感觉就是在JS中可以定义一个类,然后用new创建对象,那么在JS中如何做呢?我们先看如下案例,下面的案例是写一个简单的喷泉效果的. window.onload = function(){ // 创建一个画布对象var canvas = document.createElement("canvas");// 设置大小

java学习笔记3——java关键字

java学习笔记3——java关键字 虽然老师说不用刻意的去记忆,但是我还是在网上找到了非常详细的注解,再次收藏 关键字的类型表: 各个关键字的详细注解和实例,按首字母排序: 1.abstract abstract 关键字可以修改类或方法. abstract 类可以扩展(增加子类),但不能直接实例化. abstract 方法不在声明它的类中实现,但必须在某个子类中重写. -示例- public abstract class MyClass{ } public abstract String my

Java学习之道:Java 导出EXCEL

1.Apache POI简介 Apache POI是Apache软件基金会的开放源码函式库,POI提供API给Java程式对Microsoft Office格式档案读和写的功能. .NET的开发人员则可以利用NPOI (POI for .NET) 来存取 POI 的功能. 2.POI结构 HSSF - 提供读写Microsoft Excel XLS格式档案的功能. XSSF - 提供读写Microsoft Excel OOXML XLSX格式档案的功能. HWPF - 提供读写Microsoft

【小白的java成长系列】——Java基础知识

今天来说说java的基础知识,个人感觉都不知道要说啥的,还是为后面的内容做一些铺垫吧~ 今天主要说的都是java面向对象之前的基础知识,比如数据类型呀,表达式运算符呀~等等一系列的知识,下节来说说面向对象.今天这节我就不用程序来说明,直接用文字说明.因为个人感觉真木有啥好说的,这些程序后续都会说到的,比较简单,写写就会了的..好吧~开始了... 1. Java数据类型划分: 基本数据类型:都是一个个具体的值 数值型:表示具体的数字,所有的整数默认情况下都是int,所有的小数都是double型的

java学习1-初识java编程

需要安装的软件 1.java jre 2.java JDK EE版本 3.UltraEdit 网站:http://www.oracle.com/technetwork/java/javase/downloads/index.html 本人安装java目录为C:\Java\jdk1.8.0_05\bin. javac----编译器 java----字节码解释器 jar---jar包压缩 使用命令行javac编译时需要使用 set path=C:\Java\jdk1.8.0_05\bin设置编译器所

【小白的java成长系列】——java关键字

准备出一个系列的内容啦,今天就从关键字开始说起吧~ 类型 关键字 说明 关键字 说明 访问控制权限 public 公共的,公开的, protected 受保护的,用来修饰属性或方法.只能符合有包内友好关系,或者是父子友好的类才能够访问,即:同层次包底下的可以访问:不能修饰类. private 私有的,用来修饰属性或方法,只能类的内部本身才能够访问,不能修饰类.   其实修饰符还有一种友好的类型 类.方法和变量修饰符 abstract 抽象;可以用来修饰类和方法,被修饰的类不能够实例化(即不能用n

好程序员Java学习路线分享Java面试题之加载机制

好程序员Java学习路线分享Java面试题之加载机制,面试场景:面试官第一问:请问,我现在编写一个类,类全名如下:java.lang.String,我们知道JDK也给我们听过了一个java.lang.String,那么,我们编写的这个String类能否替换到JDK默认提供,也就是说程序实际运行的时候,会加载我们的String还是JDK的String?为什么?如果,你无法确定?那么第二问:了解类的加载机制吗?知道JDK的类加载器吗?双亲委托机制说说看如果,你还不了解,那么我们聊聊今天的天气吧!1,

Java学习笔记(Java语言规范,API,JDK,IDE)

Java语言规范:java.sun.com/docs/books/jls 三个版本的API:J2SE J2EE J2ME 1. J2SE 客户端独立应用程序或者applet 2. J2EE 服务端应用程序 [Java Servlets&JavaServer Page] 3. J2ME 移动设备变成 JDK为Java开发提供一个开发环境(IDE) Java学习笔记(Java语言规范,API,JDK,IDE)