OutputStreamWriter 将字节流转换为字符流.是字节流通向字符流的桥梁.如果不指定字符集编码,该解码过程将使用平台默认的字符编码,如:UTF-8: 步骤: 1.创建流 子类对象  绑定数据目的. FileOutputStream fos = new FileOutputStream("c:\\utf.txt"); 2.将字节转为字符,并声明utf-8格式(万国码). OutputStreamWriter sow = new OutputStreamWriter(fos,&…
字节流与和字符流的使用非常相似,两者除了操作代码上的不同之外,是否还有其他的不同呢? 实际上字节流在操作时本身不会用到缓冲区(内存),是文件本身直接操作的,而字符流在操作时使用了缓冲区,通过缓冲区再操作文件,如图12-6所示.下面以两个写文件的操作为主进行比较,但是在操作时字节流和字符流的操作完成之后都不关闭输出流. 范例:使用字节流不关闭执行 package org.lxh.demo12.byteiodemo; import java.io.File; import java.io.FileO…
转换流: InputStreamReader   输入字节流转换成输入字符流OutputStreamWriter  输出字节流转换成输出字符流 总结:就是字节流转换成字符流,但是不能字节流转换成字节流(联想记忆----只有屌丝想变成高富帅,没有高富帅想变成屌丝) 应用场景:    在以后开发中中我们免不了使用别人的工具,如果别人就是返回一个字节流,但是你想用字符流,这个时候我们就可以使用转换流来把字节流转换成字符流 下面是一些实例演示: 把字节流转换成字符流,并实现读写 public class…
Java中的字节输入出流和字符输入输出流 以下哪个流类属于面向字符的输入流( ) A BufferedWriter B FileInputStream C ObjectInputStream D InputStreamReader 解析:IO流(1)字节输入流        基类:InputStream        FileInputStream.ByteArrayInputStream.PipedInputStream.BufferedInputStream.ObjectInputStrea…
如下内容是关于java中全角半角字符的相互转换的内容.package com.whatycms.common.util; import org.apache.commons.lang.StringUtils; public class BCConvert { private static String bj2qj(String src) { if (src == null) { return src; } StringBuilder buf = new StringBuilder(src.len…
问题 在java中,一个字符等于多少字节? 或者更详细的问:在java中,一个英文字符等于多少字节?一个中文字符等于多少字节? 答案 Java采用unicode来表示字符,java中的一个char是2个字节,一个中文或英文字符的unicode编码都占2个字节,但如果采用其他编码方式,一个字符占用的字节数则各不相同. 在 GB 2312 编码或 GBK 编码中,一个英文字母字符存储需要1个字节,一个汉子字符存储需要2个字节. 在UTF-8编码中,一个英文字母字符存储需要1个字节,一个汉字字符储存需…
这一篇我们将会介绍java中try,catch,finally的用法 以下先给出try,catch用法: try { //需要被检测的异常代码 } catch(Exception e) { //异常处理,即处理异常代码 } 代码区如果有错误,就会返回所写异常的处理. 首先要清楚,如果没有try的话,出现异常会导致程序崩溃.而try则可以保证程序的正常运行下去,比如说: try { int i = 1/0; } catch(Exception e) { ........ } 一个计算的话,如果除数…
流分类: 1.Java的字节流   InputStream是所有字节输入流的祖先,而OutputStream是所有字节输出流的祖先.2.Java的字符流  Reader是所有读取字符串输入流的祖先,而writer是所有输出字符串的祖先. InputStream,OutputStream,Reader,writer都是抽象类.所以不能直接new   计算机上所有文件的储存是都是字节(byte)的储存 Java 内用 Unicode 编码存储字符 字符流处理的单元为 2 个字节的 Unicode 字…
1.字节流 字节流byte为单位对文件的数据进行写入与读取操作.字节的方式在复制音频图片文件时比较适用,但在对于普通文件的读写上有两大缺陷: 第一,字节流在读取中文字符时,若设定的字节数组长度刚好末尾的中文字不能获取完整,那么容易将这个字符拆开而造成乱码 第二,字节流在读取数据时,对于取不满字节数组的数据会自动进行填充,而该填充编译器无法识别,就会造成末尾会输出许多方框,关键是转码方面的问题 String name = "D:/test.txt"; File file = new Fi…
字节流 在I/O类库中,java.io.InputStream和java.io.OutputStream分别表示字节输入流和字节输出流,它们都是抽象类,不能实例化,数据流中的最小单位是字节,所以叫做字节流. 一.InputStream中的读取数据的方法如下: 1 .int read() 功能:读取一个字节的数据,并且返回读到得数据,如果返回-1,则表示读到输入流的末尾. 2.int read(byte[] b) 功能:从输入流中读取一定量的字节,并将其存储在字节数组b中,返回实际读取的字节数,如…
字节流和字符流复制文件的过程: 1.建立两个流对象 绑定数据源和目的地 2.遍历出需复制的文件写入复制过后的新文件中(只不过是遍历的时候是区分字节和字符的) 3.访问结束后关闭资源 字节流复制文件: package com.aaa.demo4; import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.FileOutputStream; import java.io.IOExcepti…
21.01_IO流(字符流FileReader) 1.字符流是什么 字符流是可以直接读写字符的IO流 字符流读取字符, 就要先读取到字节数据, 然后转为字符. 如果要写出字符, 需要把字符转为字节再写出. 2.FileReader FileReader类的read()方法可以按照字符大小读取 FileReader fr = new FileReader("aaa.txt"); //创建输入流对象,关联aaa.txt int ch; while((ch = fr.read()) != -…
一.字符流和字节流的区别 拿一下上一篇文章的例子: package com.demo.io; import java.io.File; import java.io.FileReader; import java.io.FileWriter; import java.io.Reader; import java.io.Writer; public class FileReaderWriterTest { public static void main(String[] args) throws…
字符流用于处理字符数据的读取和写入,它以字符为单位. 一.Reader类与Writer类 1.Reader类是所有字符输入流的父类,它定义了操作字符输入流的各种方法. 2.Writer类是所有字符输出流的父类,它定义了操作输出流的各种方法. 二.InputStreamReader类与OutputStreamWriter类 1.InputStreamReader是字节流通向字符流的桥梁.它可以根据指定的编码方式,将字节输入流转换为字符输入流. (1)构造方法有两种: InputStreamRead…
一.面向对象的三大特征,以及作用. 答:面向对象的三大特征即,封装性.继承性.多态性. 其分别的作用为 : 封装作用:将数据封装起来,提高数据的安全性, 继承作用:提高代码的复用性,减少冗余代码. 多态性:应用程序不必对每个派生类进行方法调用,只需要对抽象基类处理即可,大大提高程序的复用性,可以提高可扩充性和可维护性. 二.多态中的向上转型 的作用以及向下转型使用的原因 答:在多态中向上转型的是作用是,父类的引用对象名指向子类的实体,也就是用一个抽象的基类去调用每一个派生子类,向下转型的原因为,…
一.字符流 字节流提供了处理任何类型输入/输出操作的功能(因为对于计算机而言,一切都是0和1,只需把数据以字节形式表示就够了),但它们不可以直接操作Unicode字符,因为一个Unicode字符占用2个字节,而字节流一次只能操作一个字节.既然Java的口号就是"一次编写.处处运行",那么包含直接的字符输入/输出的支持是必要的.因此就有一些字符输入/输出流,之前已经说明过了,字符流顶层是Reader和Writer这两个抽象类,因此就从这里开始本文. 二.Reader Reader是定义J…
转换时可以指定编码格式:GBK.UTF-8 public class Demo { public static void main(String[] args) { File f = new File("word.txt"); FileOutputStream out = null;//字节流 OutputStreamWriter osw = null;//字节流转字符流 BufferedWriter bw = null;//缓冲字符流 try { out = new FileOutp…
ASCII编码 ASCII码主要是为了表示英文字符而设计的,ASCII码一共规定了128个字符的编码(0x00-0x7F),只占用了一个字节的后面7位,最前面的1位统一规定为0. ISO-8859-1编码 为了扩展覆盖其他语言字符,ISO组织在ASCII码基础上又制定了一系列标准用来扩展ASCII编码,它们是ISO-8859-1~ISO-8859-15,其中ISO-8859-1应用得最广泛. ISO-8859-1仍然是单字节编码,它总共能表示256个字符.ISO-8859-1向下兼容ASCII,…
Java中的字节流 在描述字节流时,先知道什么是流 流可以分为:输入流和输出流 输入流和输出流 示意图: 字节流读取内容:二进制,音频,视频 优缺点:可以保证视频音频无损,效率低,没有缓冲区 字节流可以分为:InputStream(字节输入流) 和 OutputStream(字节输出流) InputStream是所有类字节输入流的超类其下的类有: FileInputStream(文件输入流), BufferedInputStream(缓冲字节输入流), ObjectInputStream(对象字…
1.Java中FileRead方法的运用代码及详解 package example2;import java.io.FileReader;import java.io.IOException;class FileRead{    public static void main(String[] args) throws IOException{        //创建一个FileWriter对象    //FileWriter fw=new FileWriter("File01.txt"…
不多说,直接上干货! 把提高效率的动作,封装成一个对象.即把缓冲区封装成一个对象. 就是在一个类里封装一个数组,能对流锁操作数据进行缓存. 什么是字符流缓冲区? 善于使用字符流缓冲区,减轻负担,提高下效率. 其实啊,无非是将源中数据,存储到自定义数组里,进行缓存.并对数组操作,从而提高效率. 即BufferedReader 比 FileReader要增强.   BufferedWriter 比 FileWriter要增强. 什么情况下需要使用字符流缓冲区? 先从一个例子,来由浅入深的 为了提高写…
案例1: 读取一个文件并写入到另一个文件中,char[] 来中转. 首先要在E盘下创建一个文本文档,命名为test.txt,输入一些字符串. public class Demo_5 { public static void main(String[] args) { FileReader fr=null; //文件取出字符流对象(输入流) FileWriter fw=null; //写入到文件(输出流) try { fr=new FileReader("e:\\test.txt");…
字符输出流:Writer类:使用时候需要它的子类 局限性:只能写文本文件,无法写其他文件 方法: package demo; import java.io.FileWriter; import java.io.IOException; public class WriterDemo { public static void main(String[] args) throws IOException { FileWriter fw = new FileWriter("d:\\java.txt&q…
今天在QQ群上看见有人问如何在Java中输入一个字符的问题. 查了下有以下三种方法吧: char c = new java.util.Scanner(System.in).next().charAt(0); 这算是最常用的了吧,实际上就是输入字符串后再利用charAt(0)得到 char c = new java.util.Scanner(System.in).next().toCharArray()[0]; 勉强算得上第二种吧!我以前很常用的.可以用,但是毕竟不好,浪费资源,又没有第一种简单.…
使用Java中Character类的静态方法: Character.isDigit(char c) //判断字符c是否是数字字符,如‘1’,‘2’,是则返回true,否则返回false   Character.isLowerCase(char c) || Character.isUpperCase(char c) //判断c是否是字母字符,前面LowerCase是小写,后面UpperCase是大写,是返回True,否则返回False Character.isLetterOrDigit(char…
关于request.getInputStream(): http://www.cnblogs.com/steve-cnblogs/articles/5420198.html 浏览器 采用了一种编码方式,即 "multipart/form-data" 的编码方式,采用这种方式,浏览器可以很容易将表单内的数据和文件放在一起发送.这 种编码方式先定义好一个不可能在数据中出现的字符串作为 分界符,然后用它将各个数据段分开,而对于每个数据段都对应着 HTML 页面表单 中的一个 Input 区,…
一.final关键字 final可以修饰变量.方法及类: 1.当定义一个final变量时,jvm会将其分配到常量池中,其所修饰的对象只能赋值一次,对基本类型来说是其值不可变,引用类型(包括作为函数形参或类变量):引用不可以被修改该.当作为类变量时, 其初始化可以在两个地方,一是其定义处,也就是说在final变量定义时直接给其赋值,二是在构造函数中,这两个地方只能选其一.  2.当修饰一个方法时,该方法在子类中将不能被重写.    通常,如果一个类不允许其子类覆盖某个方法,则可以把这个方法声明为f…
首先,想要明白hashCode的作用,必须要先知道Java中的集合. 总的来说,Java中的集合(Collection)有两类,一类是List,再有一类是Set. 前者集合内的元素是有序的,元素可以重复:后者元素无序,但元素不可重复. 那么这里就有一个比较严重的问题了:要想保证元素不重复,可两个元素是否重复应该依据什么来判断呢? 这就是Object.equals方法了.但是,如果每增加一个元素就检查一次,那么当元素很多时,后添加到集合中的元素比较的次数就非常多了. 也就是说,如果集合中现在已经有…
1. 子类的构造函数如果要引用super的话,必须把super放在函数的首位.   class Base {   Base() {   System.out.println("Base");   }   }       public class Checket extends Base {   Checket() {   super();//调用父类的构造方法,一定要放在方法的首个语句   System.out.println("Checket");   }    …
管道流(PipedStream)可以用于不同线程间直接传送数据.一个线程发送数据到输出管道,另一个线程从输入管道中读取数据.通过使用管道,实现不同线程间的通信,而无须借助于类似临时文件之类的东西. package thread.communicate; import java.io.IOException; import java.io.PipedInputStream; import java.io.PipedOutputStream; /*2015-11-19*/ public class…