day20 java 语言中的读取写入数据(一)

day20  java 语言中的读取写入数据(一)

一、io概述

io数据流的读写功能,在实际的生活中也很常见,比如文件的上传、下载,日志的自动更新等都与io读写密切相关。io又被分为了读取数据和写入数据两个大的功能。下面就来看看读取数据的几种类。

二、读取数据的几种方式

读取数据被分为了字节流读取数据,和字符流读取数据两种。

(一):字符输入流:

1、fileReader类。是字符流读取数据

2、BufferedReader类。带有缓冲流读取数据

(二):字节输入流:

1、FileInputStream类。是字节流读取数据

2、BufferedInputStream。是带有缓冲流读取数据

三、具体实例

    (一)字符流读数据

//io数据流输入读取【FileReader】
package www.com.c1;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.IOException;

public class Io02 {
	public static void main(String[] args) {
		try {
			//1、创建使用字符流实例
			FileReader fileReader = new FileReader("D:\\zs.txt");
			//2、定义变量接收读取到的
			int temp = 0;
			//3、定义字符来转换。
			char c;
			//4、循环打印
			while ((temp = fileReader.read())!=-1) {
				c =(char) temp;
				System.out.print(c);
			}
			//5、关闭数据流
			fileReader.close();
		} catch (FileNotFoundException e) {
			e.printStackTrace();
		} catch (IOException e) {
			e.printStackTrace();
		}
	}
}
//io数据流输入读取【BufferedReader】
package www.com.c1;
import java.io.BufferedReader;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.IOException;

public class Io04 {

	public static void main(String[] args) {
		try {
			//1、创建实例,
			BufferedReader buf = 
			    new BufferedReader(new FileReader("D:\\zs.txt"));
			//2、定义字符串来接收
			String temp;

			//3、使用readline来读取数据,注意他是读取的一行字符串
			while ((temp = buf.readLine())!=null) {
				System.out.println(temp);
			}			//4、关闭数据流
			buf.close();
		} catch (FileNotFoundException e) {
			e.printStackTrace();
		} catch (IOException e) {
			e.printStackTrace();
		}
	}
}

    (二)字节流读数据

package www.com.c1;

import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;

//io数据流输入读取【FileInputStream】

//1、FileInputStream:字节流读取文件:一般读取一些图片、视频等等。
//					 字符流读取文件:一般都是一些文字。

public class Io01 {
	public static void main(String[] args) {
//使用第一种方式【字节流】读取文件。
		try {
			//1步:创建输入字节流实例,注意后面的文件存放的位置路径
			FileInputStream inputStream01 = new FileInputStream("D:\\zs.txt");

			//2步、定义变量来接受每一次读取到的数据
			int tmp;

			//4、定义变量来转换打印读到的是什么。
			char ok;

			//3、使用while循环来读取文件的内容:核心步骤
			while ((tmp=inputStream01.read())!=-1) {
				ok = (char) tmp;//使用强制类型转换
				System.out.print(ok);
			}
			//5、关闭数据流
			inputStream01.close();

		} catch (FileNotFoundException e) {
			System.out.println("文件不存在!请在改路径下建立该文件!");
		} catch (IOException e) {
			e.printStackTrace();
		}

//使用第二种方式读取文件。	【使用字节流读取中文】

		try {
			//1、创建读取文件的实例
			FileInputStream inputStream = new FileInputStream(new File("D:\\zs.txt"));

			//2、定义数组来控制每次读取到的数据量【类似于缓存】
			byte[] b = new byte[1024]; 

			//3、定义变量来接收读取到的数据
			int a;
			//4、使用read[byte]方法读取数据
			while ((a = inputStream.read(b))!=-1) {

				//5、创建字符串来接收处理读取到的数据,
				String s = new String(b, 0, a);
					//注意各个参数,参数一:代表每次读取的最大数据量
							//参数二:代表读取数据的偏移量,就是从哪个字节开始读取剩下的数据
							//参数三:读取字节的数据。
				//6、输出
				System.out.println(s);
			}

			//7、关闭数据流
			inputStream.close();

		} catch (FileNotFoundException e) {
			System.out.println("文件不存在");
		} catch (IOException e) {
			e.printStackTrace();
		}
	}
}
//io数据流输入读取【BufferedInputStream】
package www.com.c1;
import java.io.BufferedInputStream;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
public class Io03 {
	public static void main(String[] args) {
		try {
			//1、创建BufferedInputStream实例,只能传一个输入流,所以在创建的时候都会创建输入流的父类或者子类。
			BufferedInputStream bis = 
					new BufferedInputStream(new FileInputStream("D:\\zs.txt"));

			//2、定义变量接收读取到的
			int temp = 0;
			//3、定义字符来转换。
			char c;
			//4、循环打印
			while ((temp = bis.read())!=-1) {
				c =(char) temp;
				System.out.print(c);
			}

			//5、关闭数据流
			bis.close();

		} catch (FileNotFoundException e) {
			e.printStackTrace();
		} catch (IOException e) {
			e.printStackTrace();
		}
	}
}

四、结束语

都这儿关于使用IO流读取文件的常用4个方法就说完了。注意一下在这4个实例中的应用。

时间: 2024-10-11 16:01:33

day20 java 语言中的读取写入数据(一)的相关文章

day21 java 语言中的读取写入数据(二)

day21  java 语言中的读取写入数据(二) 一.概述: 使用IO流写文件,就体现的是下载的功能.所以说很有必要单独说一下. 二.写入功能:(下载) 写入功能同样也是被分隔为了字符流写入和字节流写入两个方式. (一):字符流写入数据 1.FileWriter类. 2.bufferedwriter类.带缓冲流 (二):字节流写入数据 1.FileOutputStream类. 2.bufferoutputstream类.带有缓冲流 三.具体实例     (一):字符流写入数据 //io数据流输

java的poi技术读取Excel数据

这篇blog主要是讲述java中poi读取excel,而excel的版本包括:2003-2007和2010两个版本, 即excel的后缀名为:xls和xlsx. 读取excel和MySQL相关: java的poi技术读取Excel数据到MySQL 你也可以在 : java的poi技术读取和导入Excel了解到写入Excel的方法信息 使用JXL技术 :java的jxl技术导入Excel  下面是本文的项目结构: 项目中所需要的jar文件: 所用的Excel数据(2003-2007,2010都是一

java的poi技术读取Excel数据到MySQL

这篇blog是介绍java中的poi技术读取Excel数据,然后保存到MySQL数据中. 你也可以在 : java的poi技术读取和导入Excel了解到写入Excel的方法信息 使用JXL技术可以在 :java的jxl技术导入Excel  项目结构: Excel中的测试数据: 数据库结构: 对应的SQL: 1 CREATE TABLE `student_info` ( 2 `id` int(11) NOT NULL AUTO_INCREMENT, 3 `no` varchar(20) DEFAU

day22 Java语言中的------JDBC连接

day22 Java语言中的------JDBC连接 一.JDBC概述: "JDBC"就是Java连接数据库,根据数据库的不同建立的连接也有一定的区别.我们主要还是对MySQL数据库进行数据的操作.JDBC架构中主要包含两种:一种是JDBC应用程序层,一种是JDBC驱动程序层.下表是JDBC与各种数据库连接的图示.下面就具体的来了解一下Java与数据库之间的一个关系. 二.JDBC: 在具体开始学习JDBC之前,做好相应的准备工作.在MySQL数据库官网下载好相应的jar包(mysql

Java语言中反射动态代理接口的解释与演示

Java语言中反射动态代理接口的解释与演示 Java在JDK1.3的时候引入了动态代理机制.可以运用在框架编程与平台编程时候捕获事件.审核数据.日志等功能实现,首先看一下设计模式的UML图解: 当你调用一个接口API时候,实际实现类继承该接口,调用时候经过proxy实现. 在Java中动态代理实现的两个关键接口类与class类分别如下: java.lang.reflect.Proxy java.lang.reflect.InvocationHandler 我们下面就通过InvocationHan

Java语言中的定义变量、构造函数

day02 Java语言中的定义类.变量.方法.构造函数 一.概述: 在Java语言中,变量的定义和使用时非常常见和重要的:同时对后续的操作变量奠定基础,在这里定义和使用变量就要使用到我们前一节说到的数据类型了,它们两个就是绑定在一起使用的.我们回顾一下前一节学的数据类型. 学完变量以后就要学会使用变量去定义一些东西,去构造我们需要的一些方法来满足学习的需要.从而引申出了构造这一个词汇.构造就是创造的含义,通过创造一些东西来满足.下面就一一的来看一下. 二.定义"类"(class):

Swift语言中如何使用JSON数据教程

原文:Swift语言中如何使用JSON数据教程 这是一篇翻译文章,原文出处:http://www.raywenderlich.com/82706/working-with-json-in-swift-tutorial JSON(全称:JavaScript Object Notation),是网络服务中传输数据的常用方法,JSON因为容易使用,且可读性强, 所以非常受到欢迎. 下面是个JSON的一个片段: [ {"person": {"name":"Dani

Java语言中的----数组

day07  Java语言中的--数组 一.数组的概述: 什么是数组?数组是干什么用的?为啥要学数组?这些都是疑问.再你学完数组以后就知道了,数组是存储在相邻内存位置的单一数据类型的元素集合.什么是单一数据类型?就是在你定义数组的时候的数据类型,就只能存储这一个类型的数组.那么我们访问他的时候就直接通过指定数组的名字和下标就可以直接访问数组元素了. 二.数组: 1.定义数组         数据类型 数组名[] = new  数据类型[内存数据大小]         int a[] = new 

用多态来实现U盘,Mp3,移动硬盘和电脑的对接,读取写入数据。

using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace 多态模拟移动硬盘和U盘 { class Program { static void Main(string[] args) { //用多态来实现U盘,Mp3,移动硬盘和电脑的对接,读取写入数据. MobileTool mt = new UDisk(