字节流、字符流
2015-09-09 10:02
239 查看
字节流、字符流
1、字节流
输入流 IntputStream(通过子类实例化)
把文件的内容读取出来,并显示在console在。package com.erquan.stream;
import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
public class InputStream {
public static void main(String[] args) throws IOException {
File file = new File("c:" + File.separator + "file.txt");
FileInputStream in = new FileInputStream(file);
//静态分配数组
//
byte buffer[] = new byte[1024];
//
int len = in.read(buffer); //指定文件的内容读取到流中,返回数组的长度
//动态fen配数组的大小
byte buffer[] = new byte[(int) file.length()];
for (int i = 0; i < buffer.length; i++) {
buffer[i] = (byte) in.read(); //一个个读入
}
//new String(buffer)不能去除多余的空格
//System.out.println(new String(buffer, 0, len)); //转成字符输出
System.out.println(new String(buffer));
in.close(); //一定要记得关闭
}
}
输出流 OutputStream(通过子类实例化)
把程序里要保存的东西写入到指定的文件中package com.erquan.stream;
import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
public class OutputStream {
public static void main(String[] args) throws IOException {
File file = new File("c:" + File.separator + "file.txt");
if (!file.exists()) {
//System.out.println("文件不存在");
try {
file.createNewFile();
} catch (IOException e) {
e.printStackTrace();
}
//新建字节流
//FileOutputStream out = new FileOutputStream(file);
//在现有的文件尾部追加写入,不会覆盖原有的内容
FileOutputStream out = new FileOutputStream(file, true);
String context = "hello world!!!! \r\n"; //要写入的信息 \r\n 表示换行
byte buffer[] = context.getBytes(); //内容存入数组
//这两种方法都会覆盖前一次的内容 FileOutputStream(file, true) 不会
//out.write(buffer); //向文件写入数据方法 一 一次全部写入
//写入的方式 二 个个字符写入
//
for (int i = 0; i < buffer.length; i++) {
//
out.write(buffer[i]);
//
}
out.close(); //关闭流
} else {
System.out.println("文件存在!!");
}
}
}
2、字符流
输入流 Writer
把程序里要保存的东西写入到指定的文件中package com.erquan.charstream;
import java.io.File;
import java.io.FileWriter;
import java.io.IOException;
public class WriterStream {
public static void main(String[] args) {
//加载文件
File file = new File("c:" + File.separator + "file.txt");
//在现有的文件尾部追加写入,不会覆盖原有的内容
try {
FileWriter fileWrite = new FileWriter(file, true);
//char buffer[] = context.getBytes(); //内容存入数组
String context = "hello world!!!! \r\n"; //要写入的信息 \r\n 表示换行
fileWrite.write(context); //向文件写入数据方法 一
System.out.println("写入文件成功!!");
fileWrite.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
输出流 Reader
把文件的内容读取出来,并显示在console在。package com.erquan.charstream;
import java.io.File;
import java.io.FileReader;
import java.io.IOException;
public class ReaderStream {
public static void main(String[] args) throws IOException {
File file = new File("c:" + File.separator + "file.txt");
FileReader fileReader = new FileReader(file);
char buffer[] = new char[1024];
int len = fileReader.read(buffer);
//转成字符串后输出
System.out.println(new String(buffer, 0, len));
}
}
相关文章推荐
- Java IO 操作
- System.in流
- 内存流
- SimpleDateFormat 类
- 在ubuntu12.10里成功安装qq!!
- 线程的实现
- javascript事件处理
- javascript文本对象
- 通过反射技术测试一个类的private…
- 最常用的正则表达式的使用
- 更灵活的使用PrepareStatement接口
- MyBatis入门示例——MyBatis学习笔记…
- MyBatis的动态SQL详解 (转载)
- MyBatis之ResultMap简介,关联对象…
- SSH整合--1
- SSH整合- 2- add service layout
- Ubuntu 终端命令学习----浅…
- C++语言的设计与演化 读书笔记一
- C++语言的设计与演化 读书笔记二
- 武汉国医堂医院黑吗?黑不黑?向大家曝光骗子新招数