Java字节流(读文件,写文件,读写文件)

字节流可以读取任何文件,字符流只能读取文本文件。

1、字节流读文件

package com.Java字节流;

import java.io.File;
import java.io.FileInputStream;

public class TestInputStream {
          
   

	public static void main(String[] args) throws Exception{
          
   
	
		File file = new File("C:\Users\Desktop\InputStream.txt");
		if(file.isFile()) {
          
   
			//创建输入流,需要指定数据源(文件路径)
			FileInputStream fileIn = new FileInputStream(file);
			
			//读
			//方法一:read() 从该输入流读取一个字节的数据。
		    /*	int i = fileIn.read();
			    while(i!=-1) {
				System.out.println((char)i);
				i = fileIn.read();  //读取数据的下一个字节,如果达到文件的末尾,返回值为 -1 。
			}*/
			
			/*方法二:read(byte[] b)   参数:b - 读取数据的缓冲区。
			byte[] bs =new byte[14];
			int i = fileIn.read(bs);  //从该输入流读取最多bs.length字节的数据到字节数组。
			while(i!=-1) {	
				System.out.println(new String(bs));  //将读出的字节数组转化为字符串输出
				i = fileIn.read(bs);
			}*/
				
			/*方法三   read(byte [] b , off , len)
		  	参数说明:
		                  b - 读取数据的缓冲区。 
			              off - 目标数组 b的起始偏移量 
			              len - 读取的最大字节数。
		    
			*/
			byte[] bs =new byte[14];
			int i = fileIn.read(bs, 0, 14);
			while(i!=-1) {
          
   
				//将读出的字节数组,转化为字符串输出
				System.out.println(new String(bs));
				i = fileIn.read(bs, 0 , 14);
			}	
		}else {
          
   
			System.out.println("文件不存在");
		}
	}

}

2、字节流写文件

package com.Java字节流;

import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;

public class TestOutStream {
          
   

	public static void main(String[] args) throws IOException {
          
   
		
		File file = new File("C:\Users\Desktop\OutStream.txt");

		// 创建输出流
		FileOutputStream fileOut = new FileOutputStream(file);
		
		// 写 , 会覆盖文件内容
		//方法一 :write(int b) 将指定的字节(参数 b的低8位)写入底层输出流。
		fileOut.write(97);// 实际上写入字符a
		fileOut.write(98);// 实际上写入字符b
		//方法二:write(byte []) 将指定的字节数组写入输出流
		String string = "I love learning Java";
		byte[] bs = string.getBytes(string);
		fileOut.write(bs);
		//方法三:write(byte[] b, int off, int len) 写入 len从指定的字节数组起始于偏移 off基础输出流。
		fileOut.write(bs, 0, 14);
	}
}

3、字节流读写文件

package com.Java字节流;

import java.io.FileInputStream;
import java.io.FileOutputStream;

public class TestCopy {
          
   

	public static void main(String[] args) throws Exception{
          
   
		//创建输入流和输出流
		FileInputStream fileIn = new FileInputStream("C:\Users\Desktop\InStream.txt");
		//创建输出流
		FileOutputStream fileOut = new FileOutputStream("C:\Users\Desktop\OutStream.txt");
		//读写
		byte[] bs = new byte[5];
		int i = fileIn.read(bs);
		while(i!=-1) {
          
   
			fileOut.write(bs,0,i);
			i = fileIn.read(bs);
		}
		//后打开的先关闭
		fileOut.close();
		fileIn.close();
	}
}
经验分享 程序员 微信小程序 职场和发展