JAVAIO流经验总结:

什么是流呢?我想流应该就是管道吧,文件流应该就和水流差不多吧,程序员不但要具备一定的逻辑思维能力还应该具备一定的形象思维能力,否则这一章很不好掌握的,所以在每一次读文件的时候就想着有一根管道插在了文件上准备向外抽水,这样就不难理解这一章的内容了,这一章节的内容远不止这些,还有其他的流,什么缓冲流、节点流、处理流,性质都一样的,所以这章你就想着几根管道插来查去的就行了,最多外层包一层处理流呗,万变不离其中,

流:

1.良好的编程习惯:在调用close()方法前,先调用flush()方法.

2. 字节流stream 字符流(read write);

节点流(直接对在上面) 处理流(套在节点流外面);

输入流(in or read) 输出流(out or write)

FileInputStream:

package IO;

import java.io.*;

public class TestFileInputStream {

public static void main(String[] args){

int b=0;

FileInputStream in=null;

in=new FileInputStream("c:/servletTrain.java");

}catch(FileNotFoundException e){

System.out.println("文件未找到");

System.exit(-1);

}

try{

long num=0;

while((b=in.read())!=-1){

System.out.print((char)b);

num++;

}

in.close();

System.out.println();

System.out.println("共读取了"+num+"个字符");

}catch(IOException e1){

System.out.println("文件读取错误");

System.exit(-1);

}

}

}

FileOutputStream:

package IO;

import java.io.*;

public class TestFileOutputStream {

public static void main(String[] args){

int b=0;

FileInputStream in=null;

FileOutputStream out=null;

try{

in=new FileInputStream("c:/servletTrain.java");

out=new FileOutputStream("c:/st.java");

while((b=in.read())!=-1){

out.write(b);

}

in.close();

out.close();

}catch(FileNotFoundException e1){

System.out.println(e1.getMessage());

}catch(IOException e2){

System.out.println(e2.getMessage());

}

}

}

FileReader:

package IO;

import java.io.*;

public class TestFileReader {

public static void main(String[] args){

FileReader fr=null;

int c=0;

try{

fr=new FileReader("c:/servletTrain.java");

while((c=fr.read())!=-1){

System.out.print((char)c);

}

fr.close();

}catch(FileNotFoundException e){

System.out.println(e.getMessage());

}catch(IOException e1){

System.out.println(e1.getMessage());

}

}

}

FileWriter:

package IO;

import java.io.*;

public class TestFileWriter {

public static void main(String[] args){

FileWriter fw=null;

try{

fw=new FileWriter("c:/unicode.dat");

for(int c=0;c<50000;c++){

fw.write(c);

}

fw.close();

System.out.println("文件写入成功");

}catch(IOException e1){

System.out.println(e1.getMessage());

}

}

}

BufferedInputStream:

package IO;

import java.io.*;

public class TestBufferStream1 {

public static void main(String[] args){

try{

FileInputStream fis=new FileInputStream("c:/st.java");

BufferedInputStream bis=new BufferedInputStream(fis);

int c=0;

System.out.println(bis.read());

System.out.println(bis.read());

bis.mark(100);

for(int i=0;i<=10&&(c=bis.read())!=-1;i++){

System.out.println((char)c+"");

}

System.out.println();

bis.reset();

for(int i=0;i<=10&&(c=bis.read())!=-1;i++){

System.out.println((char)c+"");

}

System.out.println();

bis.reset();

for(int i=0;i<=10&&(c=bis.read())!=-1;i++){

System.out.println((char)c+"");

}

System.out.println();

bis.close();

}catch(IOException e){

System.out.println(e.getMessage());

}

}

}

BufferedReader/BufferedWriter:

package IO;

import java.io.*;

public class TestBufferStream2 {

public static void main(String[] args){

try{

FileWriter fw=new FileWriter("c:/dat2.txt");

BufferedWriter bw=new BufferedWriter(fw);

FileReader fr=new FileReader("c:/dat2.txt");

BufferedReader br=new BufferedReader(fr);

String s=null;

for(int i=1;i<=100;i++){

s=String.valueOf(Math.random());

bw.write(s);

bw.newLine();

}

bw.flush();

fw.close();

bw.close();

while((s=br.readLine())!=null){//BufferedReader可以读一行

System.out.println(s);

}

fr.close();

br.close();

}catch(IOException e){

System.out.println(e.getMessage());

}

}

}

转换流:

package IO;

import java.io.*;

public class TestTransForm1 {

public static void main(String[] args){

try{

OutputStreamWriter osw=new OutputStreamWriter(

new FileOutputStream("c:/char.txt"));

osw.write("mircosoftbmsunapplehp");

System.out.println(osw.getEncoding());

osw.close();

osw=new OutputStreamWriter(

new FileOutputStream("c:/char.txt",true),//true是追加的意思

"ISO8859_1");

osw.write("mircosoftbmsunapplehp");

System.out.println(osw.getEncoding());

osw.close();

}catch(IOException e){

System.out.println(e.getMessage());

}

}

}

package IO;

import java.io.*;

public class TestTransForm2 {

public static void main(String[] args){

InputStreamReader isr=new InputStreamReader(System.in);//System.in 阻塞式的

BufferedReader br=new BufferedReader(isr);

String s=null;

try{

s=br.readLine();

while(s!=null){

if(s.equalsIgnoreCase("exit"))break;

System.out.println(s.toUpperCase());

s=br.readLine();

}

}catch(IOException e){

System.out.println(e.getMessage());

}

}

}

DataInputStream/DataInputStream:

package IO;

import java.io.*;

public class TestDataStream {

public static void main(String[] args){

ByteArrayOutputStream baos=new ByteArrayOutputStream();

DataOutputStream dos=new DataOutputStream(baos);

try{

dos.writeDouble(Math.random());

dos.writeBoolean(true);

ByteArrayInputStream bais=new ByteArrayInputStream(

baos.toByteArray());//拿到baos.toByteArray()这个字节数组的引用

System.out.println(bais.available());

DataInputStream dis=new DataInputStream(bais);

System.out.println(dis.readDouble());

System.out.println(dis.readBoolean());

dos.close();

dis.close();

}catch(IOException e){

System.out.println(e.getMessage());

}

}

}

PrintStream:

package IO;

import java.io.*;

public class TestPrintStream {

public static void main(String[] args){

PrintStream ps=null;

try{

FileOutputStream fos=new FileOutputStream("c:/log.dat");

ps=new PrintStream(fos);

}catch(IOException e){

System.out.println(e.getMessage());

}

if(ps!=null){

System.setOut(ps);//重新设置System.out的流对象

}

int ln=0;

for(char c=0;c<=60000;c++){

System.out.print(c+" ");

if(ln++>=100){

System.out.println();

ln=0;

}

}

}

}

package IO;

import java.io.*;

public class TestPrintStream2 {

public static void main(String[] args){

String filename=args[0];

if(filename!=null){

list(filename,System.out);

}

}

public static void list(String f,PrintStream fs){

try{

BufferedReader br=new BufferedReader(new FileReader(f));

String s=null;

while((s=br.readLine())!=null){

fs.println(s);

}

br.close();

}catch(IOException e){

fs.print("无法读取文件");

}

}

}

package IO;

import java.io.*;

import java.util.*;

public class TestPrintStream3 {

public static void main(String[] args){

String s=null;

BufferedReader br=new BufferedReader(

new InputStreamReader(System.in));

try{

FileWriter fw=new FileWriter("c:/logfile.log",true);

PrintWriter log=new PrintWriter(fw);

while((s=br.readLine())!=null){

if(s.equalsIgnoreCase("exit")) break;

System.out.println(s.toUpperCase());

log.println("------");

log.println(s.toUpperCase());

log.flush();

}

log.println("==="+new Date()+"===");

log.flush();

log.close();

}catch(IOException e){

System.out.println(e.getMessage());

}

}

}

ObjectInputStream/ObjectInputStream:

package IO;

import java.io.*;

public class TestObjectIO {

public static void main(String[] args)throws Exception{

T t=new T();

t.k=8;

FileOutputStream fos=new FileOutputStream("c:/testobjiectio.dat");

ObjectOutputStream oos=new ObjectOutputStream(fos);

oos.writeObject(t);

oos.flush();

oos.close();

FileInputStream fis=new FileInputStream("c:/testobjiectio.dat");

ObjectInputStream ois=new ObjectInputStream(fis);

T tReaded=(T)ois.readObject();

System.out.println(tReaded.i+" "+tReaded.j+" "+tReaded.d+" "+tReaded.k);

}

}

class T implements Serializable{

//实现这个接口Serializable,系统为你序列化;想自己序列化,就实现Externalizable

int i=0;

int j=9;

double d=2.3;

//int k=0;

transient int k=0;//transient 透明的,被其修饰的变量在序列化时不被考虑

}

转载于:https://www.cnblogs.com/li-print/archive/2012/09/27/2706363.html

JAVAIO流经验总结相关推荐

  1. 计算机游戏的产生,孩子容易沉迷计算机游戏,原来是因为过程中产生“心流”经验?...

    原标题:孩子容易沉迷计算机游戏,原来是因为过程中产生"心流"经验? 孩子容易沉迷计算机游戏,是因为过程中产生心流经验,从而获得满足感.在学习情境中,若也能提供促发心流经验的条件,自 ...

  2. javaio流层次结构_流的多层次分组

    javaio流层次结构 1.简介 使用Java 8流,可以很容易地根据不同的标准对对象集合进行分组. 在这篇文章中,我们将看到如何从简单的单级分组到更复杂的,涉及多个级分组的分组. 我们将使用两个类来 ...

  3. JavaIO流加解密,AES对字符串加解密

    加解密文件? 哈哈哈哈,当然是为了安全,自己的东西不像让别人看见. 1,学了JavaIO流的字节流的读取写入,便可实现. 加密原理: 把文件读取,然后,按某个特定的规则改变其字节写入一个新文件. 解密 ...

  4. JavaIO流中的拷贝

    JavaIO流中对数据的操作尤为重要,掌握了基本的拷贝操作,才能将各种数据源的操作联系起来. 先来看看对文件夹的拷贝吧: 1 /** 2 * 利用递归实现文件夹的拷贝操作 3 * 分析:判断 4 * ...

  5. Java从入门到精通十一(javaIO流)

    Java从入门到精通十一(javaIO流) IO引入 字节流和字符流(一些说明) 字节流没有用到缓冲区并不是没有用到内存 为什么输入流是读数据,而输出流是写数据? 字节流说明 字节输入流读数据的方法 ...

  6. Java------IO流与异常处理机制 详解

    IO流与异常处理机制 File类 File类的每一个实例可以表示硬盘(文件系统)中的一个文件或目录(实际上表示的是一个抽象路径) 使用File可以做到: 1:访问其表示的文件或目录的属性信息,例如:名 ...

  7. 【JavaIO流】JavaIO中的常用处理流

    JavaIO中的常用处理流 在前面,我们了解了有关JavaIO流基础的使用,其中对于IO流来说最基础的四大基类就是InputStream.OutputStream.Reader.Writer.而我们对 ...

  8. JavaIO流_下(NIO.2中Path、Paths、Files类的使用)

    NIO.2中Path.Paths.Files类的使用 Java NIO 概述 ​ Java NIO (New IO,Non-Blocking IO)是从Java 1.4版本开始引入的一套新的IO AP ...

  9. javaIO流之转换流

    目录 简介 一.编码和解码 二.字符集 2.1ASCII 字符集 2.2Unicode 字符集 2.3GBK 字符集 三.乱码 四.InputStreamReader 4.1构造方法 4.2解决编码问 ...

  10. javaIO流详解--读取,写入文件的所有类与方法

    目录 IO流简介: 1 :InputStream 2:OutputStream 3:FileInputStream 4:FileOutputStream 5:利用FileInputStream和Fil ...

最新文章

  1. mysql检索有什么区别_检索行时,MySQL中AND或OR运算符有什么区别?
  2. sklearn中的fit_transform和transform以及什么时候使用
  3. 我对孩子学习编程的一点思考
  4. .net之workFlow4.0学习
  5. 怎么去掉vux点击group产生的阴影
  6. “疫”外爆发:没那么简单的视频会议
  7. 【Spring MVC】文件上传、文件下载
  8. 快速入门RabbitMq,看这一篇就够了。
  9. go语言 select
  10. boost boost::asio::read read_some receive 区别
  11. N卡驱动安装闪退,安装程序无反应,重装无效,不重装系统解决方法
  12. 解决mysql 1864 主从错误
  13. 【Java 代码实例 14】BeanUtils用法详解,附源码分析
  14. 【C语言】Bingo 猜数字
  15. linux socket错误提示errno分析
  16. 人工智能离不开“人工投喂”数据,现在中国约有 100 万人做这事
  17. 2020长三角(上海)区块链应用创新大赛复赛评审圆满结束
  18. html中去除浮漂有什么作用,鱼漂吃铅量大、和吃铅量小都有啥优点?
  19. CANoe.DiVa 操作指南 - 时间参数配置
  20. 推荐几款可自已实施的轻量级ERP系统

热门文章

  1. 制作Makefile中 ** missing separator 错误解决
  2. 布隆过滤器(Bloom Filter)详解
  3. 解决hibernate只能插入一条数据的问题
  4. lucene3.5学习笔记03--待续
  5. Update Remote Files 1.0
  6. 英文写作的25个黄金加分句型
  7. .Net WebApi接口之Swagger集成详解
  8. 2018.06.30 BZOJ1857: [Scoi2010]传送带(三分套三分)
  9. bzoj 4551: [Tjoi2016Heoi2016]树
  10. SQL注入原理解说,非常不错!