javaI/O流

 I/O流总结:

(1)java流操作的类或接口

(2)按照不同的角度进行分类:

1〉按照流的方向可以分为输入流和输出流;

2〉按照处理数据的不同可以分为字节流(8位)和字符流(16位);

(3)  J2SDK所提供的所有位于包java.io内的流类型都分别继承以下四种抽象流类型。

              

1〉InputStream基本方法:

int read() //读取一个字节并且以一个整形返回,如果返回-1则说明已到输入流的末尾。

int read(byte[] buff ) //读取一系列的字节并存储到一个buff数组中,返回的是实际读到的字节数。

int read(byte[] buff,int offset,int length) //读取length个字节,读取一系列的字节并存储到一个buff数组中,返回的是读到的字节数。

void close()  //关闭流

//创建流
		FileInputStream fis=new FileInputStream( "C:\\myfile\\my.txt");
		byte [] data=new byte[1024];
		int len=-1;
		//循环读取字节
		while((len=fis.read(data))!=-1){
			//将读取的字节转换成字符串
			String s=new String(data, 0, len);
			System.out.println(s);
		}

	}

2〉OutputStream基本方法:

void write(int b)   //向输出流中写入一个字节数据;

void write(byte [])   // 将一个字节类型数组中的数据写入到输出流中;

void write(byte [],int off,int len)    // 将一个字节类型数组中的数据从指定位置(off),长度为(len)的数据写入到输出流中;

3〉Reader的基本方法:

int reader()   //读取一个字符并以整数的形式返回;

int reader(char [] off)   //读取一系列的字符并存储到数组off中,返回实际读到的字符数;

int reader(char [] off,int offset,int length)  //读取一个字符,从offset位置开始,到length长度;

4〉Writer

void write(int b)     //向输出流中写入一个字符数据;

void write( String,String)     //将一个字符串中的字符写入到输出流中;  

void write(byte [],int off,int len)       ////将一个字符类型的数组中从指定位置(off)开始的length长度到输出流中;

例:把D盘文件中的内容读取并写入到C盘文件中:

	//创建流对象
		Reader reader = new FileReader("D:\\我的青春谁做主.txt");
		BufferedReader br = new BufferedReader(reader);
		Writer write = new FileWriter("C:\\myfile\\my.txt");
		BufferedWriter bw = new BufferedWriter(write);
		StringBuffer sbr = new StringBuffer();
		String line;
		//循环读取内容
		while ((line = br.readLine()) != null) {
			sbr.append(line);
			System.out.println(sbr);
		}
          //写入到C盘中		String news = sbr.toString();
		bw.write(news);
		//关闭流
		bw.close();
		write.close();
		br.close();
		reader.close();

	}

(3)使用二进制读取文本文件

                                //原始路径
    		InputStream is=new FileInputStream("C:\\图片.jpg");
		DataInputStream dis=new DataInputStream(is);
		//目标路径
		OutputStream os=new FileOutputStream("E:\\.jpg");
		DataOutputStream ois=new DataOutputStream(os);
		byte [] data=new byte[1024];
		int len;
		while((len=dis.read(data))!=-1){
			ois.write(data, 0, len);
		}
		ois.close();
		os.close();
		dis.close();
		is.close();
时间: 2024-08-13 09:24:45

javaI/O流的相关文章

深入理解JavaI/O流

其实我个人觉得,javaI/O流是一种比较乏味的事情.因为看不到明显的运行效果,但是输入输出程序都需要用到I/O操作即:允许程序读取外部数据.用户输入数据,使用输出机制允许程序记录运行状态,将数据仅处理.Java中的I/O通过java.io中的类和接口支持,java中的IO流包括字符流和字节流,两大类除此之外java的IO中还是用了一种模式:装饰模式 将IO流分成底层的节点流和上层的处理流,其中节点流用于和底层的物理存储节点直接关联,不同的物理节点获取节点流的方式可能存在一定的差异,但程序可以把

重新认识Java-I/O流

记录一下在工作中遇到的一些有意思的问题,在之前系统学习过Java的IO流,但是在工作中长时间没有用到导致在这几天的一个需求中抓瞎了,查了好一会的资料耽误了一段时间,好了废话不多说,下面简单讲一下需求. 需求是这样的,数据库中有一张数据表的一个BLOB字段中存放了一个excel文件,我需要将这个文件放到服务器指定的文件夹下面.思路是这样的:1.在指定文件夹下面创建excel文件.2.jdbc取出数据库中的文件.3.各自转换为输入输出流将数据库中的文件数据导入到指定文件内.下面是代码: packag

JavaI/O:简单的使用DataOutputStream和DataInputStream操作文件流

DataInputStream 是数据输入流.它继承于FilterInputStream.DataInputStream 是用来装饰其它输入流,它"允许应用程序以与机器无关方式从底层输入流中读取基本 Java 数据类型".应用程序可以使用DataOutputStream(数据输出流)写入由DataInputStream(数据输入流)读取的数据. DataOutputStream?是数据输出流.它继承于FilterOutputStream.DataOutputStream?是用来装饰其它

JavaI/O:简单的使用FileInput和FileOutputStream操作文件流

java的输入输出建立在4个抽象类的基础上:InputStream.OutputStream.Reader.Writer.InputSream和OutputStream被设计成字节流类,而Reader和Writer被设计成字符流类.一般来说,处理字符或者字符串时应该使用字符流类,处理字节或者二进制对象时应该使用字节流类. InputStream(输入流):输入流是用来读入数据的.- - - > > >读入OutputStream(输出流):输出流是用来写出数据的.- - - > &

JavaI/O 系统

1.JavaI/O 系统概述 A.  输入输出(I/O):指的是计算机与外部世界,或者一个程序与计算机的其余部分之间的接口 B. 流的概念(流:Stream) 流的基本特性:有数据.有方向 2. 流的分类 A.按数据流的方向分: a. 输入流:从数据源到应用程序(类:InputStream.Reader) b. 输出流:从应用程序到数据源(类:OutputStream.Writer) B. 按处理数据的最小单位的不同分 a. 字节流:(最小单位:byte) (类:InputStream. Out

对IO流的操作(文件大小,拷贝,移动,删除)

import java.io.File;import java.io.FileInputStream;import java.io.FileOutputStream;import java.io.FileReader;import java.io.FileWriter;import java.io.IOException;import java.io.SequenceInputStream; class LjyFileClass { /*LjyFileClass工具类使用需知: * * 1.计算

hdu3461Marriage Match IV 最短路+最大流

//给一个图.给定起点和终点,仅仅能走图上的最短路 //问最多有多少种走的方法.每条路仅仅能走一次 //仅仅要将在最短路上的全部边的权值改为1.求一个最大流即可 #include<cstdio> #include<cstring> #include<iostream> #include<queue> #include<vector> using namespace std ; const int inf = 0x3f3f3f3f ; const

Java学习之IO流三

1.从键盘接收两个文件夹路径,把其中一个文件夹中(包含内容)拷贝到另一个文件夹中(高效流) 1 /** 2 * 1.从键盘接收两个文件夹路径,把其中一个文件夹中(包含内容)拷贝到另一个文件夹中 3 * @author vanguard 4 * 5 */ 6 public class Demo01 { 7 public static void main(String[] args) { 8 //键盘输入两个文件夹路径 9 Scanner sc = new Scanner(System.in); 1

标准文档流

标准流指的是在不使用其他的与排列和定位相关的特殊CSS规则时,各种元素的排列规则.HTML文档中的元素可以分为两大类:行内元素和块级元素.       1.行内元素不占据单独的空间,依附于块级元素,行内元素没有自己的区域.它同样是DOM树中的一个节点,在这一点上行内元素和块级元素是没有区别的.       2.块级元素总是以块的形式表现出来,并且跟同级的兄弟块依次竖直排列,左右自动伸展,直到包含它的元素的边界,在水平方向不能并排.盒子在标准流中的定位原则margin控制的是盒子与盒子之间的距离,