Le contenu de cet article explique comment lire et écrire le même fichier en Java ? (code), il a une certaine valeur de référence. Les amis dans le besoin peuvent s'y référer. J'espère qu'il vous sera utile.
Le même fichier ne peut pas être lu et écrit en même temps, car lorsque nous écrivons le fichier, le fichier original sera écrasé. Si tel est le cas, pour le même fichier, le fichier sera écrasé et ne pourra pas être lu. la prochaine fois.
Bien sûr, pour deux fichiers différents, vous pourrez lire et écrire en même temps
Titre : 26 lettres non ordonnées sont stockées dans un texte, et les lettres doivent être trié puis réécrit dans le fichier Support
Analyse : Le contenu du fichier lu peut être stocké sous une certaine forme dans la mémoire, puis écrit et utilisé séparément.
1. Utilisez des collections pour stocker les fichiers lus
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. Utilisez le stockage de chaînes. La méthode unique readLine() dans BufferReader peut lire une ligne à la fois
//用字符缓冲流的方法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(); }
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!