java 中文件寫入讀出

對文件的操作可以利用 File 類進行操作。
1字節=8位
file.length() 返回的是字節 byte
工具類一般要用靜態方法。
讀取文件函數
public static String readFile(String filename) throws IOException{
String content="";
File file=new File(filename);
InputStream inputStream=new FileInputStream(file);//向上轉型 字節-》字節流
//從流中取得數據
int length=(int) file.length();//的到文件長度
// for(int i=0;i<length;i++){ //第一種讀取方法--效率低,頻繁與硬盤交流
// int data=inputStream.read();
// content+=(char)data;
// System.out.println((char)data);
// }
byte[] b=new byte[length];//第二中讀取方法
inputStream.read(b);
content=new String(b,"utf-8");//可以通過String構造函數進行對字節的處理,後面指定編碼規則
inputStream.close();
return content;
}
寫入文件函數
public static void writeFile(String content,String filename) throws IOException{
File file=new File(filename);
OutputStream outputstream=new FileOutputStream(file,true);//後面加個true將爲一個追加模式;
byte[] b=content.getBytes("utf-8");//指定編碼格式
outputstream.write(b);
outputstream.close();
}
緩衝流(減少對硬盤的訪問,就是從硬盤讀取後放在緩衝流,然後重緩衝流進行操作)
程序操作:
InputStream inputstream;
BufferedInputStream buffer=new BufferInputStream(inputStream);
buffer.read(b);

OutputStream outputstream;
BufferedOutputStream buffer=new BufferOutputStream(outputStream);
buffer.write(b);
關閉的時候先關閉緩衝流後再關閉輸入流
字符流
(最大好處就是不用關心字符的編碼問題)
讀出數據:
public static String readFileByCharacterStream(String filename) throws IOException{
String connent=" ";
File file=new File(filename);
Reader reader=new FileReader(file);
int length=(int) file.length();
char [] charArray=new char[length];
reader.read(charArray);
reader.close();
connent=new String(charArray);
return connent;
}
使用緩衝流讀出數據
public static String readFileByCharacterStreamUsingBufferStream(String filename) throws IOException{
String connent=" ";
File file=new File(filename);
Reader reader=new FileReader(file);
BufferedReader bufferreader=new BufferedReader(reader);
StringBuilder build=new StringBuilder();//不可以在有多線程的地方使用,在多線程用StringBuffer
String line=bufferreader.readLine();
while(line!=null){
build.append(line);
line=bufferreader.readLine();
}
bufferreader.close();
reader.close();
connent=build.toString();
return connent;
}
使用緩衝流寫入數據
public static void WriteFileByCharacterString(String connent,String descFile) throws IOException{
File file=new File(descFile);
Writer write=new FileWriter(descFile,true);
BufferedWriter bufferwriter=new BufferedWriter(write);
bufferwriter.write(connent);
bufferwriter.close();
write.close();
}

讀寫文件的基本步驟

字節流
File->InputStream(FileInputStream) || OutputStream(FileOutputStream)->BufferedInputStream|| BufferedOutputStream

字符流
File->Reader(FileReader) || Writer(FileWriter) ->BufferedReader || BufferedWriter

記得要按棧的方式 先開後關來 關閉這些流!!!!!!!!!!!!!!!




發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章