java對同一個文件進(jìn)行讀寫操作方法
同一個文件是不可以進(jìn)行同時的讀寫的,因?yàn)槲覀儗懭胛募采w原文件的,如果這樣,對于同一文件來來說,文件發(fā)生覆蓋,無法進(jìn)行下次讀取
當(dāng)然,對于兩個不同的文件,可以一邊讀一邊寫的操作
題目:一個文本中存儲26個無序字母,要求對字母排序后重新寫入該文件中
分析:可以在內(nèi)存中用一定的形式存儲讀入的文件內(nèi)容,然后進(jìn)行寫入,分開操作。
1.用集合存儲讀入的文件
public static void fileRevise(File file) throws IOException {
Reader reader=new BufferedReader(new FileReader(file));
//讀取的數(shù)據(jù)用內(nèi)存為中介,存取,如建立一個集合
int len;
char[] charArray=new char[1024];
//集合用于儲存讀取的數(shù)據(jù)
List<Character> list=new ArrayList<>();//char 類型的集合,儲存char[]讀取的數(shù)據(jù)
while ((len=reader.read(charArray))!=-1){
for (int i = 0; i <len ; i++) {
list.add(charArray[i]);//char->string
}
}
char[] newArray=new char[list.size()];
for (int i = 0; i <list.size() ; i++) {
newArray[i]=list.get(i);
}
Arrays.sort(newArray);
Writer write=new BufferedWriter(new FileWriter(file));
write.write(newArray);
//關(guān)閉流
reader.close();
write.close();
}
2.用字符串存儲,BufferReader中特有的readLine()方法可以一次讀取一行
//用字符緩沖流的方法readline()讀取,用字符串緩存,將字符串轉(zhuǎn)為字符數(shù)組重新寫入
public static void fileRevise2(File file) throws IOException {
Reader reader=new BufferedReader(new FileReader(file));
StringBuilder sb=new StringBuilder();
String str;
while ((str=((BufferedReader) reader).readLine())!=null){
sb.append(str);
}
System.out.print(sb);
char[] cArray=sb.toString().toCharArray();//
Arrays.sort(cArray);
reader.close();
Writer write=new BufferedWriter(new FileWriter(file));
write.write(cArray);
write.close();
}
以上就是本次給大家介紹的全部內(nèi)容,感謝大家對腳本之家的支持。
相關(guān)文章
Intellij IDEA 錄制快捷鍵實(shí)現(xiàn)自動格式化的方法
這篇文章主要介紹了Intellij IDEA 錄制快捷鍵實(shí)現(xiàn)自動格式化的方法,本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下2020-09-09
SpringBoot配置HTTPS及開發(fā)調(diào)試的操作方法
在實(shí)際開發(fā)過程中,如果后端需要啟用https訪問,通常項(xiàng)目啟動后配置nginx代理再配置https,前端調(diào)用時高版本的chrome還會因?yàn)樽C書未信任導(dǎo)致調(diào)用失敗,通過摸索整理一套開發(fā)調(diào)試下的https方案,下面給大家分享SpringBoot配置HTTPS及開發(fā)調(diào)試,感興趣的朋友跟隨小編一起看看吧2024-05-05
詳解Kotlin中如何實(shí)現(xiàn)類似Java或C#中的靜態(tài)方法
Kotlin中如何實(shí)現(xiàn)類似Java或C#中的靜態(tài)方法,本文總結(jié)了幾種方法,分別是:包級函數(shù)、伴生對象、擴(kuò)展函數(shù)和對象聲明。這需要大家根據(jù)不同的情況進(jìn)行選擇。2017-05-05
springboot 接收List 入?yún)⒌膸追N方法
本文主要介紹了springboot 接收List 入?yún)⒌膸追N方法,本文主要介紹了7種方法,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2022-03-03
Java編程中使用JDBC API連接數(shù)據(jù)庫和創(chuàng)建程序的方法
這篇文章主要介紹了Java編程中使用JDBC API連接數(shù)據(jù)庫和創(chuàng)建程序的基本教程,JDBC是一種用于執(zhí)行SQL語句的Java API,可以為多種關(guān)系數(shù)據(jù)庫提供統(tǒng)一訪問需要的朋友可以參考下2015-12-12
SpringBoot如何實(shí)現(xiàn)持久化登錄狀態(tài)獲取
這篇文章主要介紹了SpringBoot 如何實(shí)現(xiàn)持久化登錄狀態(tài)獲取,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2021-11-11

