JAVA IO 基本小结
java的IO是基于流(stream)概念的,什么是流呢,作为初学者,我是这样理解的,在各个应用之间传送的是BITS,这些BIT可已被认为是流体,可以就认为是水流,那么用来在各个水源之间转移水的工具应该选择什么呢?一般情况下,水管是可以的,所以数据我将数据源比作水源,将流对象比作水管,这样就有了对流的第一步认识,它再也不神秘了。
对于流,我们要研究些什么呢,我们主要是针对应用掌握流的特性,而之后根据流的特性,我们转移不同的数据时,选择不透的流对象,达到我们的目的。
下面让我们从一行常见的代码来分析流吧!
new BufferedReader(new InputStreamReader(System.in)),这是用来从键盘接受一行输入的代码,下面我们从里到外进行分析吧。
System.in的类型是InputStream,它代表的是键盘接受的输入,就是说键盘是数据源;System.in的类型可以归结为节点流、字节流、输入流;接下来是InputStreamReader这个对象是处理流,字符流,输入流;
最外面的是BufferedReader的类型是缓冲处理流、字符流、输入流。是不是有点绕啊,下面我们就从流的分类开始。
流的分类
(重点的通过分类记住这些流的模样)
按照方向分类:
输入流和输出流
流的输入输出都是以应用程序为基准的,这一点一定要注意。
输入流,模样很好记,一般情况下,输入流是带有Input字样或Reader字样的,如FileInputStream和BufferedReader等等,这些都是输入流。
输出流,一般情况下,是带有Output字样或Writer的,如FileOutputStream和FileWriter等等,详细请查查API文档,看看是不是这样。
至于什么时候使用输入流,什么时候使用输出流,我想我们就不必探讨了吧!
按照处理的单位:
字节流和字符流
字节流,一般是带有Stream字样的,如InputStream,FileInputStream等等,这组流处理的最小单位之字节。
字符流,一般是带有Reader或Writer字样的,如InputStreamReader等等,它们处理的最小单位是字符。
按照数据的来源:
节点
相关文档:
今天碰到一个很有意思的问题,就是关于使用LinkedList作为HashMap或者Hashtable得key,但是最后发现数据并没有存进去。
首先说一下HashMap,Hashtable吧,它们都继承了Cloneable, Map, Serializable。它们两个基本上是一样的,“The HashMap
class is roughly equivalent to Hashtable
, except that it is
unsy ......
用Java接口实现回调函数的等价功能
首先,看一下回调函数的定义及起源:
简而言之,回调函数就是一个通过函数指针调用的函数,如果你把函数的指针(地址)作为参数传递给另一个函数,当这个指针被用为调用它所指向的函数时,我们就说是回调函数。
为什么要使用回调函数?
因为可以把调用者与被调用者分开。调用者不关心被 ......
package com.tiantian;
import java.util.*;
public class JAVAContainer {
public static void main(String[] args) throws Exception {
// ArrayList
{
&nb ......
在这里总结一下抽取word,pdf的几种方法。
很多人用java进行文档操作时经常会遇到一个问题,就是如何获得word,excel,pdf等文档的内容?我研究了一下,在这里总结一下抽取word,pdf的几种方法。
1. 用jacob
其实jacob是一个bridage,连接java和com或者win32函数的一个中间件,jacob并不 ......
线性表,链表,集合,哈希表是常用的数据结构,在进行Java开发时,JDK已经为我们提供了一系列相应的类来实现基本的数据结构。这些类均在java.util包中。
Collection
├List
│├LinkedList
│├ArrayList
│└Vector
│ └Stack
└Set
Map
├Hashtable
├HashMap
└WeakHashMap
主要分为两个分支:
Collectio ......