IO流基本操作

第一种分法:1.输入流2.输出流
第二种分法:1.字节流2.字符流
第三种分法:1.节点流2.处理流
////////////////////////////////////////////////////////////////////////////字节流:

InputStream 的子类是? FileInputStream;
InputStream :int  read(byte[]b,int off,int len)从第几位读,读几个,返回读取的个数
OutputStream 的子类是?FileOutputStream
OutputStream :void  write(byte[]b,int off,int len)
public static void main(String args[]){
FileInputStream in = null;
        FileOutputStream out = null;
        try {
            in = new FileInputStream("e:/from.txt");//输入流(从文件读数据,即数据输入到程序里)
            out = new FileOutputStream("e:/to.txt");//输出流(写入文件数据,即数据输出到文件里)
            byte[] buffer  =new  byte[100];//字节数组,用来存放读取的数据
            int num = in.read(buffer, 0, buffer.length);//从第0位读取,读from.txt文件的 buffer.length个,放进buffer内
            out.write(buffer, 0, num);//read方法返回读取的个数
            //out.write(buffer, 0, 2);//从0位开始,把buffer数组的2个字节写进to.txt文件里
            for(int i = 0;i<buffer.length;i++){
                System.out.print(buffer[i]);
            }
String s = new String(buffer);//转换成原来的字符
s= s.trim();//trim方法:去掉首尾空格和空字符,中间的空格不去掉
            System.out.print(s);
        } catch (Exception e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
finally{
            try {
                in.close();
                out.close();
            } catch (IOException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }
        }
}

读取大文件:
public static void main(String args[]) {
        FileInputStream in = null;
        FileOutputStream out = null;
        int a = 0;
        try {
            in = new FileInputStream("e:/from.txt");//输入流(从文件读数据,即数据输入到程序里)
            out = new FileOutputStream("e:/to.txt");//输出流(写入文件数据,即数据输出到文件里)
            byte[] buffer  =new  byte[1024];//字节数组,用来存放读取的数据
            while(true){

                a++;
                System.out.print(a);
                int num = in.read(buffer, 0, buffer.length);//从第0位读取,读from.txt文件的 buffer.length个,放进buffer内
                out.write(buffer, 0, num);//read方法返回读取的个数
                if(num == -1){//返回-1,说明读取完毕
                    break;
                }
            }

        } catch (Exception e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
        finally{
            try {
                in.close();
                out.close();
            } catch (IOException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }
        }

////////////////////////////////////////字符流:读写文件时,以字符为基础
字节输入流:Reader 的子类是?FileReader
int read(char [] c,int off,int len)
字节输出流:Writer 的子类是?FileWriter
void write(char [] c,int off,int len)

public static void main(String args[]) {

        FileReader reader =null;
        FileWriter writer = null;
        try{
        reader = new FileReader("E:/from.txt");
        writer = new FileWriter("e:/to.txt");

        char [] buffer = new char[100];
        int num = reader.read(buffer, 0, buffer.length);
        writer.write(buffer, 0, num);
        for(int i = 0;i<num;i++){
            System.out.print(buffer[i]);
        }
        }
        catch(Exception e){
            System.out.print(e);
        }
        finally{
            try{
            reader.close();
            writer.close();
            }
            catch(Exception e){
                System.out.print("success!!!");
            }
        }
}
/////////////////////////////////////////////////一次性读取一行数据
public static void main(String args[]) {

        FileReader fileReader = null;
        BufferedReader  bufferedReader = null;
        try{
            fileReader = new FileReader("e:/from.txt");
            bufferedReader = new BufferedReader(fileReader);
            String line = null;
            while(true){
            line  = bufferedReader.readLine();
            if(line == null){
                break;
            }
            System.out.println(line);
            }
        }
        catch(Exception e){
            System.out.println(e);

        }
        finally{
            try{
            bufferedReader.close();
            fileReader.close();
            }
            catch(Exception e){
                System.out.println(e);
            }

        }
时间: 2024-08-02 04:48:59

IO流基本操作的相关文章

分享知识-快乐自己:IO流基本操作

点我参考常用API: IO图解: 相关理论: 流的概念和作用: 流是一组有顺序的,有起点和终点的字节集合,是对数据传输的总称或抽象.即数据在两设备间的传输称为流,流的本质是数据传输,根据数据传输特性将流抽象为各种类,方便更直观的进行数据操作. IO流的分类: 根据处理数据类型的不同分为:字符流和字节流 根据数据流向不同分为:输入流和输出流 字符流和字节流: 字符流的由来: 因为数据编码的不同,而有了对字符进行高效操作的流对象.本质其实就是基于字节流读取时,去查了指定的码表. 字节流和字符流的区别

5. IO流:★★★★★

IO流:★★★★★,用于处理设备上数据. 流:可以理解数据的流动,就是一个数据流.IO流最终要以对象来体现,对象都存在IO包中. 流也进行分类: 1:输入流(读)和输出流(写). 2:因为处理的数据不同,分为字节流和字符流. 字节流:处理字节数据的流对象.设备上的数据无论是图片或者dvd,文字,它们都以二进制存储的.二进制的最终都是以一个8位为数据单元进行体现,所以计算机中的最小数据单元就是字节.意味着,字节流可以处理设备上的所有数据,所以字节流一样可以处理字符数据. 那么为什么要有字符流呢?因

黑马程序员——IO流概述、字符流、字节流、流操作规律(一)

第一节     IO概述 概述 1.IO流:即InputOutput的缩写. 2.特点: 1)IO流用来处理设备间的数据传输. 2)Java对数据的操作是通过流的方式. 3)Java用于操作流的对象都在IO包中. 4)流按其操作数据的类型分为两种:字节流和字符流. 5)流按其流向分为:输入流和输出流. 注意:流只能操作数据,而不能操作文件. 3.IO流的常用基类: 1)字节流的抽象基流:InputStream和OutputStream 2)字符流的抽象基流:Reader和Writer 注:此四个

java(九)IO流

IO流: IO流是用来处理设备之间的数据传输的. java对数据的操作是通过流的方式. java用于操作流的对象都在IO包中. 流按操作的数据分为两种:字符流和字节流. 字符流的由来:字符流其实就是字节流读取文字字节数据后,不直接操作而是先查指定的编码表,  获取对应的文字.再对这个文字进行操作. 简单说,就是字符流=字节流+编码表. 字节流的抽象基类(就是顶层父类):InputStream,OutputStream 字符流的抽象基类:Reader,Writer 这些体系的子类都以父类名作为后缀

文件传输基础——Java IO流

第一章 文件的编码 package com.imooc.io; public class EncodeDemo { /** * @param args */ public static void main(String[] args) { // TODO Auto-generated method stub String s="欢迎你ABC"; byte[] byte1=s.getBytes(); for (byte b : byte1) { //把字节转换成16进制的方式显示 Sys

黑马程序员——IO流

------Java培训.Android培训.iOS培训..Net培训.期待与您交流! ------- IO流 IO流概述 IO流用来处理设备之间的数据传输.Java对数据的操作是通过流的方式.Java用于操作流的对象都在IO包中. 流按照流向分为两种:输入流和输出流. 输入流和输出流相对于内存设备而言.将外设中的数据读取到内存中:输入.将内存的数写入到外设中:输出. 流按照操作数据分为两种:字节流和字符流. 字节流读取文字字节数据后,不直接操作而是先查指定的编码表,获取对应的文字.再对这个文字

Java基础---IO(一)---IO流概述、字符流、字节流、流操作规律

第一讲     IO概述 概述 1.IO流:即InputOutput的缩写. 2.特点: 1)IO流用来处理设备间的数据传输. 2)Java对数据的操作是通过流的方式. 3)Java用于操作流的对象都在IO包中. 4)流按操作数据分为两种:字节流和字符流. 5)流按流向分为:输入流和输出流. 注意:流只能操作数据,而不能操作文件. 3.IO流的常用基类: 1)字节流的抽象基流:InputStream和OutputStream 2)字符流的抽象基流:Reader和Writer 注:此四个类派生出来

JavaSE 学习笔记之IO流(二十二)

IO流:用于处理设备上数据. 流:可以理解数据的流动,就是一个数据流.IO流最终要以对象来体现,对象都存在IO包中. 流也进行分类: 1:输入流(读)和输出流(写). 2:因为处理的数据不同,分为字节流和字符流. 字节流:处理字节数据的流对象.设备上的数据无论是图片或者dvd,文字,它们都以二进制存储的.二进制的最终都是以一个8位为数据单元进行体现,所以计算机中的最小数据单元就是字节.意味着,字节流可以处理设备上的所有数据,所以字节流一样可以处理字符数据. 那么为什么要有字符流呢?因为字符每个国

java IO流详解(一)

从本篇博文开始,详细讲解JAVA IO流的基本操作,力求每一个例子都给大家一个DEMO,在最终完成的时候,我会贴出最终的源码,方便大家交流学习. 上一篇博文中转载了大神的博文和图片,非常好! 文章链接如下:Java IO流 下面一个个的用实例进行讲解每个IO流的基本用法. 1 File文件 public static void main(String[] args) throws IOException { File file = new File("."); myPrint(file