更新時(shí)間:2022-12-29 11:06:23 來(lái)源:動(dòng)力節(jié)點(diǎn) 瀏覽1380次
Java文件處理是什么?動(dòng)力節(jié)點(diǎn)小編來(lái)為大家進(jìn)行詳細(xì)介紹。
import java.io.File;
import java.io.IOException;
public class FileDemo {
public static void main(String[] args) {
File file1 = new File("./src/main/resources/test");
File file2 = new File("./src/main/resources/test/score.txt");
System.out.println(file1.isDirectory());
System.out.println(file2.isFile());
System.out.println(file1.isAbsolute());
if (! file1.exists()) {
file1.mkdirs();
}
if (! file2.exists()) {
try {
file2.createNewFile();
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
字節(jié)輸入流InputStream
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
/**
* 從文件系統(tǒng)中的某個(gè)文件中獲得輸入字節(jié)
* 用于讀取諸如圖像數(shù)據(jù)之類的原始字節(jié)流
*/
public class FileInputStreamDemo {
public static void main(String[] args) {
FileInputStream fis = null;
try {
fis = new FileInputStream("./src/main/resources/test/score.txt");
} catch (FileNotFoundException e) {
e.printStackTrace();
}
if (fis != null) {
// readDemo(fis);
readByteDemo(fis);
}
}
/**
* read(byte[] b)
* read(byte[] b, int off, int len)
* @param fis
*/
public static void readByteDemo(FileInputStream fis) {
byte[] b = new byte[100];
try {
fis.read(b, 0, 5);
System.out.println(new String(b));
fis.close();
} catch (IOException e) {
e.printStackTrace();
}
}
/**
* read()
* @param fis
*/
public static void readDemo(FileInputStream fis) {
try {
int n = 0;
while ((n = fis.read()) != -1) {
System.out.print((char) n );
}
fis.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
字節(jié)輸出流OutputStream
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
public class FileOutputStreamDemo {
public static void main(String[] args) {
String name = "./src/main/resources/test/score1.txt";
FileOutputStream fos;
FileInputStream fis;
try {
fos = new FileOutputStream(name, true);
fis = new FileInputStream(name);
fos.write(50);
fos.write('a');
System.out.println(fis.read());
System.out.println((char) fis.read());
fos.close();
fos.close();
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
}
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
public class CopyFileDemo {
public static void main(String[] args) {
String path = "./src/main/resources/test/";
String name = "111.jpeg";
try {
FileInputStream fis = new FileInputStream(path + name);
FileOutputStream fos = new FileOutputStream(path + "copy" + name);
int n = 0;
byte[] b = new byte[1024];
while ((n = fis.read(b)) != -1) {
fos.write(b, 0, n);
}
fis.close();
fos.close();
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
}
import java.io.*;
/**
* 緩沖輸入流 BufferedInputStream
* 緩沖輸出流 BufferedOutputStream
*/
public class BufferedDemo {
public static void main(String[] args) {
String name = "./src/main/resources/test/score1.txt";
try {
FileOutputStream fos = new FileOutputStream(name);
BufferedOutputStream bos = new BufferedOutputStream(fos);
FileInputStream fis = new FileInputStream(name);
BufferedInputStream bis = new BufferedInputStream(fis);
long startTime = System.currentTimeMillis();
bos.write(50);
bos.write('a');
bos.flush(); // 緩沖區(qū)未寫滿,調(diào)用該方法強(qiáng)制清空緩沖區(qū)并寫入文件
System.out.println(bis.read());
System.out.println((char) bis.read());
long endTime = System.currentTimeMillis();
System.out.println(endTime - startTime);
fos.close();
bos.close(); // 也會(huì)強(qiáng)制清空緩沖區(qū)并寫入文件
fis.close();
bis.close();
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
}
字符輸入流 Reader
字符輸出流 Writer
InputStreamReader
OutputStreamWriter
import java.io.*;
public class ReaderDemo {
public static void main(String[] args) {
String name = "./src/main/resources/test/score.txt";
String name1 = "./src/main/resources/test/score1.txt";
try {
FileInputStream fis = new FileInputStream(name);
InputStreamReader isr = new InputStreamReader(fis, "GBK");
BufferedReader br = new BufferedReader(isr);
FileOutputStream fos = new FileOutputStream(name1);
OutputStreamWriter osw = new OutputStreamWriter(fos, "GBK");
BufferedWriter bw = new BufferedWriter(osw);
int n = 0;
char[] cbuf = new char[10];
/* while ((n = isr.read()) != -1) {
System.out.print((char) n);
}*/
/*while ((n = isr.read(cbuf)) != -1) {
String s = new String(cbuf, 0, n);
System.out.print(s);
}*/
while ((n = br.read(cbuf)) != -1) {
// String s = new String(cbuf, 0, n);
// osw.write(s);
bw.write(cbuf, 0, n);
bw.flush();
}
fis.close();
fos.close();
isr.close();
osw.close();
br.close();
bw.close();
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
}
步驟:
(1)創(chuàng)建一個(gè)類,繼承Serializable接口;
(2)創(chuàng)建對(duì)象;
(3)將對(duì)象寫入文件;
(4)從文件讀取對(duì)象信息
對(duì)象輸入流ObjectInputStream
對(duì)象輸出流ObjectOutputStream
import java.io.*;
public class GoodsTest {
public static void main(String[] args) {
String name = "./src/main/resources/test/score.txt";
Goods goods1 = new Goods("gd001", "電腦", 3000);
try {
FileOutputStream fos = new FileOutputStream(name);
ObjectOutputStream oos = new ObjectOutputStream(fos);
FileInputStream fis = new FileInputStream(name);
ObjectInputStream ois = new ObjectInputStream(fis);
// 將Goods對(duì)象寫入文件
oos.writeObject(goods1);
oos.writeBoolean(true);
oos.flush();
// 讀取對(duì)象
Goods goods = (Goods) ois.readObject();
System.out.println(goods);
System.out.println(ois.readBoolean());
fos.close();
oos.close();
fis.close();
ois.close();
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
} catch (ClassNotFoundException e) {
e.printStackTrace();
}
}
}
import java.io.Serializable;
public class Goods implements Serializable {
private String goodsId;
private String goodsName;
private double price;
public Goods(String goodsId, String goodsName, double price) {
this.goodsId = goodsId;
this.goodsName = goodsName;
this.price = price;
}
public String getGoodsId() {
return goodsId;
}
public void setGoodsId(String goodsId) {
this.goodsId = goodsId;
}
public String getGoodsName() {
return goodsName;
}
public void setGoodsName(String goodsName) {
this.goodsName = goodsName;
}
public double getPrice() {
return price;
}
public void setPrice(double price) {
this.price = price;
}
@Override
public String toString() {
return "Goods{" +
"goodsId='" + goodsId + '\'' +
", goodsName='" + goodsName + '\'' +
", price=" + price +
'}';
}
}
相關(guān)閱讀
0基礎(chǔ) 0學(xué)費(fèi) 15天面授
有基礎(chǔ) 直達(dá)就業(yè)
業(yè)余時(shí)間 高薪轉(zhuǎn)行
工作1~3年,加薪神器
工作3~5年,晉升架構(gòu)
提交申請(qǐng)后,顧問老師會(huì)電話與您溝通安排學(xué)習(xí)