day21.java

字节流

字节流的输出流

在这里插入图片描述

FileInputStream类

在这里插入图片描述
写出数组 和数据追加

package demo01;

import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.util.Arrays;

public class demo02InputStrean {
    
    
	public static void main(String[] args) throws IOException {
    
    
		//1、创建FileInputStream对象,构造方法中绑定要读取的数据
		FileInputStream fis= new FileInputStream("a.txt");
		//byte[] bytes =new byte[2];
		//int len= fis.read(bytes);//
		//System.out.println("读取到的长度"+len);
		/*System.out.println(bytes);
		System.out.println(bytes[0]);//取出数组的值
		System.out.println(bytes[1]);
		System.out.println(Arrays.toString(bytes));*/
		//System.out.println(new String(bytes));
		
		/* len= fis.read(bytes);//67、43
		 System.out.println("读取到的长度"+len);
		System.out.println(new String(bytes));
		
		 len= fis.read(bytes);
		 System.out.println(len);
		System.out.println(new String(bytes));
		
		 len= fis.read(bytes);//44、45
		 System.out.println("读取到的长度"+len);
		System.out.println(new String(bytes));
		
		 len= fis.read(bytes);//46、45
		 System.out.println("读取到的长度"+len);
		System.out.println(new String(bytes));//两个字节
		*/
		//
		byte[] bytes =new byte[9];
		int len =0;
		while((len=fis.read(bytes))!=-1) {
    
    
			System.out.println(len);
			System.out.println(new String(bytes));
		}
		//
		fis.close();
		
	}

}
结果是
5
cdefg

字节流的输入流(InputStream)

在这里插入图片描述在这里插入图片描述

package demo01;

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

public class InputStrean {
    
    
	public static void main(String[] args) throws IOException {
    
    
		//创建FileInputStream 对象,构造方法
	FileInputStream fis= new FileInputStream("a.txt");
		/*int len= fis.read();
		System.out.println(len);
		len= fis.read();
		System.out.println(len);
		len= fis.read();
		System.out.println(len);
		len= fis.read();
		System.out.println(len);
		len= fis.read();
		System.out.println(len);
		len= fis.read();
		System.out.println(len);
		len= fis.read();
		System.out.println(len);
		*/
	//2、使用read方法 读取
	int len =0;
		while((len=fis.read())!=-1) {
    
    
			System.out.println((char)len);
			
		}
		
		
		fis.close();
		
}
}
结果是
c
d
e
f
g

字符流

字符流输入(Reader)

java . io.Reader抽象类是表示用于读取字符流的所有类的超类,可以读取字符信息到内存中。它定义了字符输入流的基本共性功能方法。

I public void close() :关闭此流并释放与此流相关联的任何系统资源。

public int read() | :从输入流读取一一个字符。

public int read(char[] cbuf) ]:从输入流中读取一些字符,并将它们存储到字符数组cbuf中。

FileReader类

java. io. FileReader类是读取字符文件的便利类。构造时使用系统默认的字符编码和默认字节缓冲区。

构造方法

●I FileReader(File file) J:创建一个新的FileReader ,给定要读取的File对象。

●FileReader(String fileName): 创建一 个新的FileReader ,给定要读取的文件的名称。当你创建一个流对象时,必须传入-个文件路径。类似于FileInputStream 。

1. 读取字符数据

package demo02;

import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.IOException;

public class Demo02Reaber {
    
    
public static void main(String[] args) throws IOException {
    
    
	FileReader fis= new FileReader("D:\\exlipse\\eclipse-workspace\\Day21.java\\a.txt");
	/*int len =0;
	while((len =fis.read())!=-1) {
		System.out.println((char)len);
	}*/
	char[] cs = new char[14];
	int len =0;
	while((len =fis.read(cs))!=-1) {
    
    
		System.out.println(len);
		System.out.println(new String(cs));
		
	}
}
}
结果
14
大数据2005班第13号同学

在这里插入图片描述

扫描二维码关注公众号,回复: 13181659 查看本文章

2.使用字符数组读取

package demo02;

import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.IOException;

public class Demo02Reaber {
    
    
public static void main(String[] args) throws IOException {
    
    
	FileReader fis= new FileReader("D:\\exlipse\\eclipse-workspace\\Day21.java\\a.txt");
	/*int len =0;
	while((len =fis.read())!=-1) {
		System.out.println((char)len);
	}*/
	char[] cs = new char[2];
	int len =0;
	while((len =fis.read(cs))!=-1) {
    
    
		//System.out.println(len);
		System.out.println(new String(cs));
		
	}
}
}
结果
大数
据2
00
5班
第1
3号
同学

字符输出流(Writer)

| java.io.Writer抽象类是表示用于写出字符流的所有类的超类,将指定的字符信息写出到目的地。它定义了字节输出流的基本共性功能方法。

void write(int C)写入单个字符。

I void write(char[] cbuf)写入字符数组。

abstract void write(char[] cbuf, int off, int len) 写入字符数组的某一 部分,off数组的开始索引,len写的字符个数。

| void write(String str)写入字符串。

| void write(String str, int off, int len) 写入字符串的某一 部分off字符串的开始索引,en写的字符个数。

void flush() 刷新该流的缓冲。

void close() )关闭此流 ,但要先刷新它。

3.4 FileWriter类

java. io. Filewriter类是写出字符到文件的便利类。构造时使用系统默认的字符编码和默认字节缓冲区。

构造方法

! FileWriter(File file) ]:创建一一个新的FileWriter ,给定要读取的File对象。

FileWriter(String fileName):创建一个新的FileWriter,给定要读取的文件的名称。

当你创建一个流对象时,必须传入-一个文件路径,类似于FileOutputStream.

package demo02;

import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;

public class Demo02Wreitre {
    
    
public static void main(String[] args) throws IOException {
    
    
	 FileWriter fw= new FileWriter("D:\\exlipse\\eclipse-workspace\\Day21.java\\a.txt");
	fw.write(99);//学要被写入的字符还在缓冲区
	fw.flush();
	fw.write(100);//学要被写入的字符还在缓冲区
	fw.flush();
	fw.write(101);//学要被写入的字符还在缓冲区
	fw.flush();
	fw.write(102);//学要被写入的字符还在缓冲区
	fw.flush();
	fw.write(103);//如果只写一个,直接用close,实际生活中要多次依据
	fw.flush();
	fw.close();
	//fw.write(103);//需要被些人的字符还在缓存区
}
}
结果cdefg

2020080605013

猜你喜欢

转载自blog.csdn.net/qq_55689246/article/details/117235814