Java IO (5) - 总结

0. 目录

  1. FileInputStream
  2. FileOutputStream
  3. FileReader
  4. FileWriter
  5. BufferedReader
  6. BufferedWriter
  7. InputStreamReader
  8. OutStreamWriter

1. FileInputStream

FileInputStream主要用来读取二进制数据,当然,也能读取文本文件。在读取文本文件时,通常用做InputStreamReader的输入。

	public static void main(String[] args) throws IOException {
FileInputStream fis = new FileInputStream("d:/1234.txt");
byte[] b = new byte[100];
fis.read(b);
System.out.println(new String(b));
fis.close();
}

2. FileOutputStream

同FileInputStream一样,通常用来写二进制文件。

	public static void main(String[] args) throws IOException {
FileOutputStream fos = new FileOutputStream("d:/1234.txt", true);
String s = "今天是周五";
fos.write(s.getBytes());
fos.close();
}

3. FileReader

FileReader用来直接读取文件,其编码集是系统默认编码集,会出现乱码问题。

	public static void main(String[] args) throws IOException {
FileReader fr = new FileReader("d://1234.txt");
char[] cbuf = new char[100];
fr.read(cbuf);
System.out.println(new String(cbuf));
fr.close();
}

4. FileWriter

FileWriter和FileReader对应,也会出现乱码问题。FileWriter可以追加写。

	public static void main(String[] args) throws IOException {
FileWriter fw = new FileWriter("d:/1234.txt", true);
fw.append("你好");
fw.write("world");
fw.close();
}

5. BufferedReader

BufferedReader能够更有效的读文件,提供了readline这个方法,别的reader是没有的。不过BufferedReader需要传入一个Reader。

	public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new FileReader("d:/1234.txt"));
for (;;) {
String s = br.readLine();
if (s == null || s.equals("")) {
break;
}
System.out.println(s);
}
br.close();
}

6. BufferedWriter

BufferedWriter与BufferedReader对应,提供了writeline方法。BufferedWriter如果要追加写,需要用FileWriter。

	public static void main(String[] args) throws IOException {
BufferedWriter bw = new BufferedWriter(new FileWriter("d:/1234.txt",true));
bw.newLine();
bw.write("hahaha");
bw.close();
}

7. InputStreamReader

InputStreamReader用来处理编码问题,也是stream转为reader的桥梁。需要传入一个stream。

	public static void main(String[] args) throws IOException {
InputStreamReader isr = new InputStreamReader(new FileInputStream("d:/1234.txt"),"GBK");//UTF-8是乱码
char[] cbuf = new char[1024];
isr.read(cbuf);
System.out.println(new String(cbuf));
isr.close();
}

8. OutStreamWriter

OutStreamWriter同样处理写文件的乱码,与InputStreamReader对应。

	public static void main(String[] args) throws IOException {
OutputStreamWriter osw = new OutputStreamWriter(new FileOutputStream(
"d:/1234.txt", true), "GBK");
osw.write("今天放假");
osw.close();
}

Java IO (5) - 总结的更多相关文章

  1. java.IO输入输出流:过滤流:buffer流和data流

    java.io使用了适配器模式装饰模式等设计模式来解决字符流的套接和输入输出问题. 字节流只能一次处理一个字节,为了更方便的操作数据,便加入了套接流. 问题引入:缓冲流为什么比普通的文件字节流效率高? ...

  2. Java:IO流与文件基础

    Java:IO流与文件基础 说明: 本章内容将会持续更新,大家可以关注一下并给我提供建议,谢谢啦. 走进流 什么是流 流:从源到目的地的字节的有序序列. 在Java中,可以从其中读取一个字节序列的对象 ...

  3. Java IO之字符流和文件

    前面的博文介绍了字节流,那字符流又是什么流?从字面意思上看,字节流是面向字节的流,字符流是针对unicode编码的字符流,字符的单位一般比字节大,字节可以处理任何数据类型,通常在处理文本文件内容时,字 ...

  4. java Io流向指定文件输入内容

    package com.hp.io; import java.io.*; public class BufferedWriterTest{ public static void main(String ...

  5. java Io文件输入输出流 复制文件

    package com.hp.io; import java.io.FileInputStream; import java.io.FileNotFoundException; import java ...

  6. java Io流更新文件内容

    package com.hp.io; import java.io.FileOutputStream; import java.io.IOException; public class FileOut ...

  7. java IO流详解

    流的概念和作用 学习Java IO,不得不提到的就是JavaIO流. 流是一组有顺序的,有起点和终点的字节集合,是对数据传输的总称或抽象.即数据在两设备间的传输称为流,流的本质是数据传输,根据数据传输 ...

  8. java.io.NotSerializableException: test.io.file.Student

    java.io.NotSerializableException: test.io.file.Student    at java.io.ObjectOutputStream.writeObject0 ...

  9. java.io.IOException: mark/reset not supported

    java.io.IOException: mark/reset not supported at java.io.InputStream.reset(InputStream.java:348) at ...

  10. Java IO流学习总结

    Java流操作有关的类或接口: Java流类图结构: 流的概念和作用 流是一组有顺序的,有起点和终点的字节集合,是对数据传输的总称或抽象.即数据在两设备间的传输称为流,流的本质是数据传输,根据数据传输 ...

随机推荐

  1. Android开发之异步通信Handler机制

    郭大神的:http://blog.csdn.net/guolin_blog/article/details/9991569 http://www.jianshu.com/p/08cb3665972f ...

  2. 12 Useful “df” Commands to Check Disk Space in Linux

    On the internet you will find plenty of tools for checking disk space utilization in Linux. However, ...

  3. hdu4576 概率dp n^2的矩阵

    这个题目看网上好多题解都是直接O(n*m)卡过.我是这么做的. 对于m次操作,统计每个w的次数.然后对每个w做矩阵乘法. 这样直接做矩阵乘法是会TLE的. 又由于这里的矩阵很特殊,一次乘法可以降维成O ...

  4. I.MX6 Ethernet UI patch failed

    /*********************************************************************** * I.MX6 Ethernet UI patch f ...

  5. javascript OOP编辑思想的一个实践参考

    <html> <style type="text/css"> .current { background-color: red; } .dv { backg ...

  6. 利用改进的cca算法,进行识别

    这个方法,很有意思,第一,不用降维:第二,跟ica做比较,竟然说比强大的ica还好: 看来,国防科大的博士,还是很牛的. <OI and fMRI Signal Separation Using ...

  7. Nginx - webbench压力测试

    1. 下载,安装,进目录. 2. 执行:webbench -t 10 -c 1000 http://192.168.1.44/ (我开的nginx,默认端口80,直接处理了) 结果分析: Webben ...

  8. 【转】Linux Posix Timer使用

    原文网址:http://blog.csdn.net/hongszh/article/details/8608781 最强大的定时器接口来自POSIX时钟系列,其创建.初始化以及删除一个定时器的行动被分 ...

  9. andeoid学习笔记七

    Android中Broadcast的Intent大全 Api Level 3:(SDK 1.5) android.bluetooth.a2dp.intent.action.SINK_STATE_CHA ...

  10. Zend Framework 入门(3)—错误处理

    undefined 说明脚本中一些对象没有设定 你应在在使用该对象前进行判断 例如: if(typeof(aobject) == "undefined"){   //错误处理 }