Java 的输入输出总是给人一种非常混乱的感觉.要想把这个问题搞清楚.必须对各种与输入输出相关的类之间的关系有所了解. 仅仅有你了解了他们之间的关系.知道设计这个类的目的是什么.才干更从容的使用他们. 我们先对 Java I/O 的整体结构进行一个总结,再通过分析源码,给出把每一个类的关键功能是怎样实现的. Java I/O 的主要结构 Java 的输入输出,主要分为下面几个部分: 字节流 字符流 新 I/O 每一个部分,都包括了输入和输出两部分. 实现概要 这里仅仅给出每一个类的实现概要,详细…
设计一个 Java 程序,自定义异常类,从命令行(键盘)输入一个字符串,如果该字符串值为“XYZ”,则抛出一个异常信息“This is a XYZ”,如果从命令行输入 ABC,则没有抛出异常.(只有 XYZ 和 ABC 两种输入). class xyz { public void test(String x) { if(x.equals("xyz")) { try{ throw new exception(x);} catch(exception e){e.printStackTrac…
正如那本<Code Reading>一书中指出的那样,源代码阅读一直没有被很好的重 视:你上大学的时候有“代码阅读”这门课吗?相信没有. 1 Source Insight 谈到阅读源代码,不得不提一下很多人都用过并且现在也还用着的一个工具: Source Insight.很多年前我最早接触的源代码阅读工具就是这个.不可否认, 它有很多优点:非常直观,非常容易上手,该有的功能基本上都有… 但是,它也有一些缺点: 是商业软件:要花钱买或者使用盗版是Windows软件:在Linux下用的话需要用 W…
目录 一.前言 二.字节操作和字符操作 三.两种方式的效率测试 3.1 测试代码 3.2 测试结果 3.3 结果分析 四.字节顺序endian 五.综合对比 六.总结 一.前言 所谓IO,也就是Input/Output.Java程序跟外部进行的数据交换就叫做Java的IO操作.程序中数据的输入输出,被抽象为流, 按照相对于程序的流向,可分为输出流和输入流. 按照数据流的格式,可分为字节流和字符流.Java IO流的体系很庞大,功能丰富. 本文主要探讨了Java中字节操作和字符操作的区别. 二.字…
java I/O输入输出流 1.编码问题 import java.io.UnsupportedEncodingException; /** * java涉及的编码 */ public class EncodeDemo { public static void main(String[] args) throws UnsupportedEncodingException { String s = "百度ABC"; //字符串转化为byte,使用getBytes方法 //转换字节序列用的是…
流分类: 1.Java的字节流   InputStream是所有字节输入流的祖先,而OutputStream是所有字节输出流的祖先.2.Java的字符流  Reader是所有读取字符串输入流的祖先,而writer是所有输出字符串的祖先. InputStream,OutputStream,Reader,writer都是抽象类.所以不能直接new   计算机上所有文件的储存是都是字节(byte)的储存 Java 内用 Unicode 编码存储字符 字符流处理的单元为 2 个字节的 Unicode 字…
Java复习7.输入输出流 20131005 前言: Java中涉及数据的读写,都是基于流的,这一块的知识相当重要,而且在Java中的数据,char字符是16bit的,所以存在字节流和字符流的区别.如果是字符文件的输入输出,使用字符流(以Reader/Writer为抽象基类),而其他的数据是二进制的,需要使用字节流(以InputStream和OutputStream为抽象基类). 其实不止文件,网络数据传输也是输入输出流. 目录 1.字节流和字符流... 2 1.1字节输入流:... 2 1.2…
Java学习:File类 File类的概述 重点:记住这三个单词 绝对路径和相对路径 File类的构造方法 File类判断功能的方法 File类创建删除功能的方法 File类获取(文件夹)目录和文件夹相关功能 File类的概述 Java语言定义了许多类专门负责各种方式的输入或者输出,这些类都被放在java.io包中.其中: 所有输入流类都是抽象类InputStream(字节输入流),或者抽象类Reader(字符输入流)的子类: 而所有输出流都是抽象类OutputStream(字节输出流)或者Wr…
Java基础(深入了解概念为主) 匿名类 定义 Java匿名类很像局部或内联系,只是没有明细.我们可以利用匿名类,同时定义并实例化一个类.只有局部类仅被使用一次时才应该这么做. 匿名类不能有显式定义的构造函数,相反,每一个匿名类都隐含定义了一个匿名构造函数 创建匿名类 理解代码的最好方法就是先阅读,所以我们首先来看看代码. 扩展已有的类(可以是抽象类,也可以是具体类) 创建接口 interface Football { void kick(); } class AnnonymousClass {…
/** * 一,AtomicInteger 是如何实现原子操作的呢? * * 我们先来看一下getAndIncrement的源代码: * public final int getAndIncrement() { * for (;;) { * int current = get(); // 取得AtomicInteger里存储的数值 * int next = current + 1; // 加1 * if (compareAndSet(current, next)) // 调用compareAnd…