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(); } }
上一篇:
IDEA上Java项目控制台中文乱码