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();
}
}
还没有评论,来说两句吧...