字节流与字符流
2016-03-02 21:57
357 查看
----------- android培训、java培训、java学习型技术博客、期待与您交流! ------------
1、字节流
字节流主要是操作byte(字节)的类型数据:
字节输出流:OutputStream
字节输入流:InputStream
2、字符流
Java中的字符是Unicode编码,是双字节的,1个字符 等于 2个字节;
使用字节来处理字符文本就不太方便了,此时可以考虑使用字符流;
字符流主要是操作char的类型数据:
字符输出流:Writer
字符输入流:Reader
3、字节流和字符流的区别
a,在进行字符流操作的时候会使用到缓冲区(内存中),而字节流操作的时候是不会使用到缓冲区的。
b,在输出的时候,OutputStream类即使最后没有关闭内容也可以输出。但是如果是Writer的话,则如果不关闭,最后一条内容是无法输出的
c,字节流:程序 → 文件
字符流:程序 → 缓冲区(内存中) → 文件
4,实例:
import java.io.FileInputStream;
import java.io.InputStream;
public class Demo4 {
public static void main(String[] args) throws Exception {
//第一步:创建源!
String filename = "6.4";
//第二步:创建管道!
InputStream ips = new FileInputStream(filename);
//第三步:操作!
byte []buff = new byte[1024];
int len;//定义缓冲区
while((len = ips.read(buff)) != -1){
System.out.println(new String(buff,0,buff.length));
System.out.println("==========================================");
}
ips.close();//第四步:关闭资源
}
}
//字符流读出来,这时候就不会出现乱码的情况,在进行文字操作的时候最好使用字符流!
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.IOException;
import java.io.Reader;
public class Demo6 {
public static void main(String[] args) {
File src = new File("6.4");
read(src);
}
public static void read(File src){
Reader r = null;
try {
r = new FileReader(src);
} catch (FileNotFoundException e) {
e.printStackTrace();
}
char []c = new char[1024];
int len;
try {
while((len = r.read(c)) != -1){
System.out.println(new String(c,0,c.length));
}
} catch (IOException e) {
e.printStackTrace();
}
try {
r.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
----------- android培训、java培训、java学习型技术博客、期待与您交流! ------------
4000
1、字节流
字节流主要是操作byte(字节)的类型数据:
字节输出流:OutputStream
字节输入流:InputStream
2、字符流
Java中的字符是Unicode编码,是双字节的,1个字符 等于 2个字节;
使用字节来处理字符文本就不太方便了,此时可以考虑使用字符流;
字符流主要是操作char的类型数据:
字符输出流:Writer
字符输入流:Reader
3、字节流和字符流的区别
a,在进行字符流操作的时候会使用到缓冲区(内存中),而字节流操作的时候是不会使用到缓冲区的。
b,在输出的时候,OutputStream类即使最后没有关闭内容也可以输出。但是如果是Writer的话,则如果不关闭,最后一条内容是无法输出的
c,字节流:程序 → 文件
字符流:程序 → 缓冲区(内存中) → 文件
4,实例:
import java.io.FileInputStream;
import java.io.InputStream;
public class Demo4 {
public static void main(String[] args) throws Exception {
//第一步:创建源!
String filename = "6.4";
//第二步:创建管道!
InputStream ips = new FileInputStream(filename);
//第三步:操作!
byte []buff = new byte[1024];
int len;//定义缓冲区
while((len = ips.read(buff)) != -1){
System.out.println(new String(buff,0,buff.length));
System.out.println("==========================================");
}
ips.close();//第四步:关闭资源
}
}
//字符流读出来,这时候就不会出现乱码的情况,在进行文字操作的时候最好使用字符流!
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.IOException;
import java.io.Reader;
public class Demo6 {
public static void main(String[] args) {
File src = new File("6.4");
read(src);
}
public static void read(File src){
Reader r = null;
try {
r = new FileReader(src);
} catch (FileNotFoundException e) {
e.printStackTrace();
}
char []c = new char[1024];
int len;
try {
while((len = r.read(c)) != -1){
System.out.println(new String(c,0,c.length));
}
} catch (IOException e) {
e.printStackTrace();
}
try {
r.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
----------- android培训、java培训、java学习型技术博客、期待与您交流! ------------
4000
相关文章推荐
- Jetty实战之 嵌入式运行Jetty
- 新智元【Yoshua Bengio 亲自解答】机器学习 81 个问题及答案(最全收录)
- 关于gcc、glibc和binutils模块之间的关系
- poj2455Secret Milking Machine(二分 + maxflow)
- 产品经理必备软件——Axure使用详解(2)
- Java多线程之Fork/Join
- bzoj3669【NOI2014】魔法森林 SPFA
- 12C ORA-错误汇总18 ORA-57000 to ORA-65535 EXP-00000 to EXP-00114 IMP-00000 to IMP-00402 SQL*Loader-0010
- Jetty实战之 安装 运行 部署
- jlink安装
- bs4_3select()
- VMware上的ubuntu14.04与win7共享文件夹
- 扩展欧几里得算法
- Scala 统计一个文件夹下面所有单词出现的次数
- DSP 2812: 使用C++封装CPU级别的操作
- NIO和IO
- 405, HTTP Status 405 - JSPs only permit GET POST or HEAD.。
- 从零开始搭建Node.js, Express, Ejs, Mongodb服务器
- Shell Debug
- Leetcode 66 Plus One STL