The content of this article is about how to read and write the same file in Java? (code), it has certain reference value. Friends in need can refer to it. I hope it will be helpful to you.
The same file cannot be read and written at the same time, because when we write the file, the original file will be overwritten. If so, for the same file, the file will be overwritten and cannot be read next time.
Of course, for two different files, you can read and write at the same time
Title: 26 unordered letters are stored in a text, and it is required to sort the letters and then rewrite the file Medium
Analysis: The read file contents can be stored in a certain form in the memory, and then written and operated separately.
1. Use collections to store read files
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. Use string storage. The unique readLine() method in BufferReader can read one line at a time
//用字符缓冲流的方法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(); }
The above is the detailed content of How to read and write the same file in java? (code). For more information, please follow other related articles on the PHP Chinese website!