IO流操作

一、IO流

1.  IO流是用来处理设备之间的数据传输,java是通过流的方式完成对数据的传输。

2.  操作的基本规律

1>明确源和目的。

2>操作的数据是否是纯文本。

3>当体系明确后,明确要使用哪个具体的对象。

二、IO流结构

IO流

|---字节流

|--输入流抽象基类:InputStream

|--输出流抽象基类:Outputtream

|---字符流

|--输入流抽象基类:Reader

|--输出流抽象基类:Writer

注:由这四个类派生出来的子类名称都是以其父类名作为子类名的后缀。

例 :Reader的子类FileReader

Writer的子类FileWriter

FileReader程序示例:

package tan;
import java.io.FileReader;
public class FileReaderDemo {
	public static void main(String[] args) {
		FileReader fr=null;
		try {
			fr=new FileReader("demo.txt");

			//定义一个字符数组。用于存储读到字符。
			//该read(char[])返回的是读到字符个数。
			char buff[]=new char[100];
			int num=0;
			while((num=fr.read(buff))!=-1){
				System.out.println(new String(buff,0,num));
			}
		} catch (Exception e) {
			// TODO: handle exception
		}finally{
			try {
				fr.close();
			} catch (Exception e2) {
				// TODO: handle exception
			}
		}
	}
}

小知识:

//传递一个true参数,代表不覆盖已有的文件。并在已有文件的末尾处进行数据续写。
			fw=new FileWriter("demo.txt",true);
			fw.write("tan zheng qiang");

程序示例1:字节流文件复制:利用循环一次一次的读,每读一次就输出一次,直到文件结束。

package tan;
//1.导入io包
import java.io.*;
public class Test {
	public static void main(String[] args) {
		FileInputStream fis=null;
		FileOutputStream fos=null;
		try{
			//2.生成代表输入流的对象
			fis=new FileInputStream("C:/Users/Administrator/workspace/IO流操作/from.txt");
			fos=new FileOutputStream("C:/Users/Administrator/workspace/IO流操作/to.txt");
			//3.生成一个字节数组
			byte buffer[] =new byte[1024];
			//4.调用输入流对象的read方法,返回数据的大小

			while(true){
				int temp=fis.read(buffer,0,buffer.length);
				if(temp==-1){
					break;
				}
				fos.write(buffer, 0, temp);
			}

		}catch(Exception e){
			System.out.println(e);
		}finally{
			try {//5.//关闭输入输出流
				fis.close();
				fos.close();
			} catch (Exception e) {
			System.out.println(e);
			}

		}
	}
}

程序示例2:字符流的使用【文件复制】

//文件复制:
//1.导入io包
//2.生成代表输入流的对象
//3.生成一个字节数组
//4.调用输入流对象的read方法,返回数据的大小
//5.//关闭输入输出流
package tan;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
import javax.management.RuntimeErrorException;

public class ReadFile {
	public static void main(String[] args) {
		FileReader fr = null;
		FileWriter fw = null;
		try {
			fr = new FileReader("C:/Users/Administrator/workspace1/20140727/src/tan/FileTest.java");
			fw = new FileWriter("to.txt");
			char buf[] = new char[1024];
			//第一种方式
			int len = 0;
			while ((len = fr.read(buf)) != -1) {

				fw.write(buf, 0, len);

			}
			System.out.println("文件复制成功!");
			//第二种方式
//			while(true){
//				int temp=fr.read(buf, 0, buf.length);
//				if(temp==-1){
//					break;
//				}
//				fw.write(buf, 0, temp);
//			}

		} catch (Exception e) {
			throw new RuntimeException("文件复制失败!");
		} finally {
			try {
				fr.close();
				fw.close();
			} catch (Exception e) {
				e.toString();
			}

		}

	}
}
// public void write(char[] cbuf, int off, int len) throwsIOException写入字符数组的某一部分。

IO流操作

时间: 2024-11-07 19:03:14

IO流操作的相关文章

IO流操作规律

IO流的操作规律 * 字符流: * FileReader * FileWriter * BufferedReader * InputStreamReader * OutputStreamWriter * 字节流: * FileInputStream * FileOutputStream * BufferedInputStream * BufferedOutputStream 用哪个流对象解决问题呢? 明确一:明确源和目的 源:读,输入体系,InputStream   Reader 目的:写,输出

io流操作大全

JAVA 中的IO流 一.流的概念 流(stream)的概念源于UNIX中管道(pipe)的概念.在UNIX中,管道是一条不间断的字节流,用来实现程序或进程间的通信,或读写外围设备.外部文件等.       一个流,必有源端和目的端,它们可以是计算机内存的某些区域,也可以是磁盘文件,甚至可以是Internet上的某个URL.        流的方向是重要的,根据流的方向,流可分为两类:输入流和输出流.用户可以从输入流中读取信息,但不能写它.相反,对输出流,只能往输入流写,而不能读它.     

关于java io流操作文件探讨

1.任务描述    2.读取一个字符 3.读取整个文件 4.复制文件 5.复制大文件 6.利用字符流解决乱码问题 一.任务描述 大家都知道程序是程序的运行是离不开内存的,但是很多东西并不在程序当中,而程序也需要操作它们.所以就需要一个东西与内存外的资源打交道,我们就把这个东西称为io流.io流分为输出流和输入流,输出流是将内存中的东西输出到内存之外,输入流是将内存之外的东西读取到内存中.一旦有了io流之后,与内存之外的资源打交道就十分方便了.为什么这么说,其实总体上就只需要三步操作,第一步,定位

【转载】JAVA中IO流操作的基本规律总结

流操作的基本规律:三个明确 1.明确源和目的: 源:输入流即读取流       InputStream,Reader 目的:输出流即写入流    OutputStream, Writer 2.明确操作的数据是否是纯文本文件: 如是果是纯文本文件使用字符流Reader 或Writer,不是纯文本文件 使用字节流InputStream或 OutputStream 3.当体系明确后,在明确具体的适用对象: 通过设备来区分 源设备:内存  硬盘  键盘 目的设备:内存  硬盘   控制台 *******

IO流操作之字符输入输出流简单操作

1.字符输入流 //字符输入流类:Reader //FileReader:从文件读取的输入流 //BufferedReader:缓冲输入字符流 package com.newdream.IO; import java.io.BufferedReader; import java.io.FileReader; public class CharIOReader { public static void main(String[] args) { //申请缓存区并初始化 BufferedReader

C#中的IO流操作(FileStream)

StreamReader和StreamWriter适用于对文本文件的操作,因为它是以字符为单位进行的操作 不用担心编码问题 using (Stream s = new FileStream(@"C:\Users\qq\Desktop\新建文件夹\HTML\qq.txt", FileMode.Open, FileAccess.Read)) using (StreamReader r = new StreamReader(s, Encoding.Default)) //读取流中的文本 {

android IO流操作文件(存储和读取)

存储文件: public class FileOperate extends Activity { private static final String FILENAME = "mydata.txt" ;// 设置文件名称 private static final String DIR = "ljpdata" ; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(s

IO流操作-图片操作(二)

一,选取一张图片 var open = new OpenFileDialog(); open.Filter = "图片|*.jpg"; open.ShowDialog(); var filepath = open.FileName; (1)将图片转成流,流的方式生成图片 //第一中方法,先转成流 FileStream file=new FileStream(filepath,FileMode.Open); //创建一个file.length大小的数组控件 byte[] bt= new

Scala的IO流操作

 6.   io 6.1.     文件I/O 6.1.1.  读文件 scala特有的是scala.io.Source,例如: import scala.io._ Source.fromFile("cn.scala","utf8").mkString 逐行读文件内容: Source.fromFile(new java.io.File("cn.scala")).getLines().foreach(println) 6.1.2.  写文件 直