国产探花免费观看_亚洲丰满少妇自慰呻吟_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教程頻道。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 彰化县| 福清市| 双鸭山市| 炎陵县| 海丰县| 鄂托克旗| 乐都县| 金塔县| 镇远县| 富裕县| 巴彦淖尔市| 德保县| 什邡市| 叶城县| 观塘区| 宁安市| 南乐县| 化州市| 山东省| 靖江市| 巴林左旗| 门头沟区| 运城市| 宣威市| 广丰县| 个旧市| 磐石市| 吉首市| 门源| 东莞市| 乐山市| 麦盖提县| 莎车县| 广安市| 丹寨县| 会昌县| 静乐县| 遂溪县| 绵竹市| 古浪县| 肥西县|