国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 開發 > Java > 正文

java對同一個文件進行讀寫操作方法

2024-07-14 08:42:29
字體:
來源:轉載
供稿:網友

同一個文件是不可以進行同時的讀寫的,因為我們寫入文件會覆蓋原文件的,如果這樣,對于同一文件來來說,文件發生覆蓋,無法進行下次讀取

當然,對于兩個不同的文件,可以一邊讀一邊寫的操作

題目:一個文本中存儲26個無序字母,要求對字母排序后重新寫入該文件中

分析:可以在內存中用一定的形式存儲讀入的文件內容,然后進行寫入,分開操作。

1.用集合存儲讀入的文件

public static void fileRevise(File file) throws IOException {    Reader reader=new BufferedReader(new FileReader(file));    //讀取的數據用內存為中介,存取,如建立一個集合    int len;    char[] charArray=new char[1024];    //集合用于儲存讀取的數據    List<Character> list=new ArrayList<>();//char 類型的集合,儲存char[]讀取的數據    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);    //關閉流     reader.close();    write.close();  }

2.用字符串存儲,BufferReader中特有的readLine()方法可以一次讀取一行

//用字符緩沖流的方法readline()讀取,用字符串緩存,將字符串轉為字符數組重新寫入  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();  }

以上就是本次給大家介紹的全部內容,感謝大家對VeVb武林網的支持。


注:相關教程知識閱讀請移步到JAVA教程頻道。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 八宿县| 昭苏县| 亚东县| 治县。| 肥城市| 内黄县| 色达县| 九江县| 南充市| 绍兴市| 民乐县| 沂源县| 花莲市| 来凤县| 辛集市| 枝江市| 安塞县| 宣化县| 苏州市| 双流县| 仁寿县| 建阳市| 临朐县| 阜南县| 太仓市| 商南县| 盱眙县| 沿河| 新宾| 克什克腾旗| 平原县| 海安县| 新宁县| 丹寨县| 容城县| 宕昌县| 河源市| 兰考县| 南汇区| 晋州市| 新邵县|