基本的原理寓搬、方法等與字符流類似杂彭,因此字節(jié)流相對(duì)會(huì)精簡一些
如果還有疑問請(qǐng)參考字符流詳解。
1木蹬、使用字節(jié)輸出流向文件中寫入數(shù)據(jù)
import java.io.FileOutputStream;
import java.io.IOException;
public class Demo1 {
public static void main(String[] args) throws IOException{
writeFile();
}
public static void writeFile() throws IOException{
//創(chuàng)建字節(jié)輸出流對(duì)象和文件相關(guān)聯(lián)
FileOutputStream fos = new FileOutputStream("F:\\Java.txt");
//直接寫入文件
fos.write("abcde".getBytes());
//轉(zhuǎn)成的數(shù)組為[97,98,99,100,101]
fos.close();
}
2至耻、使用字節(jié)輸入流讀取文件中的數(shù)據(jù)——單個(gè)字節(jié)
import java.io.FileInputStream;
import java.io.IOException;
public class Demo2 {
public static void main(String[] args) throws IOException{
readFile();
}
public static void readFile() throws IOException{
FileInputStream fis = new FileInputStream("F:\\Java.txt");
//每次讀取單個(gè)字節(jié)
int num;
while((num = fis.read())!=-1){//讀到文件末尾返回-1
//num是int類型,注意轉(zhuǎn)換
System.out.print((char)num);
}
fis.close();
}
3、使用字節(jié)輸入流讀取文件中的數(shù)據(jù)——字節(jié)數(shù)組
import java.io.FileInputStream;
import java.io.IOException;
public class Demo3 {
public static void main(String[] args) throws IOException{
readFile2();
}
public static void readFile2() throws IOException{
FileInputStream fis = new FileInputStream("F:\\Java.txt");
byte[] arr = new byte[1024];
int num;
while((num = fis.read(arr))!=-1){//讀到文件末尾返回-1
//將結(jié)果轉(zhuǎn)換字符串
System.out.print(new String(arr,0,num));
}
fis.close();
}
4尘颓、使用字節(jié)輸入流讀取文件中的數(shù)據(jù)——優(yōu)化字節(jié)數(shù)組
import java.io.FileInputStream;
import java.io.IOException;
public class Demo4 {
public static void main(String[] args) throws IOException{
readFile3();
}
public static void readFile3() throws IOException{
FileInputStream fis = new FileInputStream("F:\\Java.txt");
//返回文件的總大小走触,單位是字節(jié)
int num = fis.available();
byte[] arr = new byte[num];
/*
* 當(dāng)數(shù)組長度和文件總大小相同時(shí)
* 讀取一次即可
* 不再需要循環(huán)讀取
* 但文件太大時(shí)不適合用
* 以防內(nèi)存溢出
*/
int len = fis.read(arr);
System.out.print(new String(arr,0,len));
}
}
5、復(fù)制一張圖片——每次讀取單個(gè)字節(jié)
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
public class Demo5 {
public static void main(String[] args){
copy1();
}
public static void copy1() throws IOException{
FileInputStream fis = new FileInputStream("F:\\java.jpg");
FileOutputStream fos = new FileOutputStream("F:\\java_copy1.jpg");
int num;
while((num = fis.read())!=-1){
fos.write(num);
}
fis.close();
fos.close();
}
6疤苹、復(fù)制一張圖片——使用數(shù)組讀取并處理異常
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
public class Demo6 {
public static void main(String[] args){
copy2();
}
public static void copy2(){
FileInputStream fis =null;
FileOutputStream fos = null;
try {
fis = new FileInputStream("F:\\java.jpg");
fos = new FileOutputStream("F:\\java_copy2.jpg");
byte[] arr = new byte[1024];
int num;
while((num = fis.read(arr))!=-1){
fos.write(arr,0,num);
}
} catch (IOException e) {
e.printStackTrace();
}finally{
if(fis!=null){
try {
fis.close();
} catch (IOException e) {
e.printStackTrace();
}
}
if(fos!=null){
try {
fos.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
7互广、復(fù)制一張圖片——使用字節(jié)緩沖流讀取并處理異常
import java.io.BufferedInputStream;
import java.io.BufferedOutputStream;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
public class Demo7 {
public static void main(String[] args){
copy3();
}
public static void copy3(){
BufferedInputStream bis = null;
BufferedOutputStream bos = null;
try {
bis=new BufferedInputStream(new FileInputStream("F:\\java.jpg"));
bos = new BufferedOutputStream(new FileOutputStream("F:\\java_copy3.jpg"));
byte[] arr = new byte[1024];
int num;
while((num = bis.read(arr))!=-1){
bos.write(arr,0,num);
}
} catch (IOException e) {
e.printStackTrace();
}finally{
try {
if(bis!=null){
bis.close();
}
} catch (IOException e) {
e.printStackTrace();
}
try {
if(bos!=null){
bos.close();
}
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
版權(quán)聲明:歡迎轉(zhuǎn)載,歡迎擴(kuò)散卧土,但轉(zhuǎn)載時(shí)請(qǐng)標(biāo)明作者以及原文出處惫皱,謝謝合作! ↓↓↓