java 对同一个文件进行读写操作
同一个文件是不可以进行同时的读写的,因为我们写入文件会覆盖原文件的,如果这样,对于同一文件来来说,文件发生覆盖,无法进行下次读取
当然,对于两个不同的文件,可以一边读一边写的操作
题目:一个文本中存储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();
}
java 对同一个文件进行读写操作的更多相关文章
- 用Java对CSV文件进行读写操作
需要jar包:javacsv-2.0.jar 读操作 // 读取csv文件的内容 public static ArrayList<String> readCsv(String filepa ...
- java文件的读写操作
java文件的读写操作主要是对输入流和输出流的操作,由于流的分类很多,所以概念很容易模糊,基于此,对于流的读写操作做一个小结. 1.根据数据的流向来分: 输出流:是用来写数据的,是由程序(内存)--- ...
- java 文件的读写操作
java 文件的读写操作 一.读: public String getSetting() { HttpServletRequest request=org.apache.struts2.Servle ...
- Java 对不同类型的数据文件的读写操作整合器[JSON,XML,CSV]-[经过设计模式改造](2020年寒假小目标03)
日期:2020.01.16 博客期:125 星期四 我想说想要构造这样一个通用文件读写器确实不容易,嗯~以后会添加更多的文件类型,先来熟悉一下文件内容样式: <?xml version=&quo ...
- C++学习48 对ASCII文件的读写操作
如果文件的每一个字节中均以ASCII代码形式存放数据,即一个字节存放一个字符,这个文件就是ASCII文件(或称字符文件).程序可以从ASCII文件中读入若干个字符,也可以向它输出一些字符. 对ASCI ...
- android报错及解决2--Sdcard进行文件的读写操作报的异常
报错描述: 对Sdcard进行文件的读写操作的时候,报java.io.FileNotFoundException: /sdcard/testsd.txt (Permission denied),在往S ...
- 使用字符流(Writer、Reader)完成对文件的读写操作
字符流 字符输出流:Writer,对文件的操作使用子类FileWriter 字符输入流:Reader,对文件的操作使用子类FileReader 每次操作的是一个字符 文件字符操作流会自带缓存,默认大小 ...
- INI 文件的读写操作
在C#中对INI文件进行读写操作,在此要引入using System.Runtime.InteropServices; 命名空间,具体方法如下: #region 变量 private static r ...
- Android 对 properties文件的读写操作
-. 放在res中的properties文件的读取,例如对放在assets目录中的setting.properties的读取:PS:之所以这里只是有读取操作,而没有写的操作,是因为我发现不能对res下 ...
随机推荐
- async-await用法
转载:https://segmentfault.com/a/1190000011526612?utm_source=tag-newest
- python requests + xpath 获取分页详情页数据存入到txt文件中
直接代码,如有不懂请加群讨论# *-* coding:utf-8 *-* #import jsonimport requestsimport pytesseractimport timeimport ...
- Delphi中的日期加减
var Date: TDateTime; FormatSettings: TFormatSettings; begin Date := Now;//获取当天时间 ShowMessage(DateTo ...
- Linux c codeblock的使用(四):创建自己的静态函数库
从我之前的博文当中,大家应该大概了解了linux下的函数库究竟是一个什么样的东西.linux下的函数库其实就像windows中的dll文件,里面包含了程序运行所需要的函数. 其实无论是我们使用linu ...
- 5ci
- [数]昨天欠下的一道立体几何题HDU-4741
并没有做到这道题,后来听学长说了题意,总之就是立体几何嗯 看了好几份题解,是的我知道是异面线段的距离了,可是看码完全不明orz. 这时候出现了一份清晰易懂甚至给出了公式来源的blog╰(*°▽°*)╯ ...
- awk命令总结
强大的文本处理工具,awk读取文件内容的每一行时,将对比该行是否与给定的模式相匹配,匹配则执行处理过程,否则对该行不处理. 序号 awk功能 例子 1 指定分隔符显示某几列 2 通过正则表达式取出 ...
- 洛谷P1993 小K的农场
思路是差分约束+dfs版SPFA. 首先来思考差分约束的过程,将题目给出的式子进行转化: 农场a比农场b至少多种植了c个单位的作物, SPFA我们考虑跑最短路,那么要让SPFA中满足的式子就是if(d ...
- Android : 高通平台Camera调试之SetpropKey/camxoverridesettings.txt
高通相关网址:Createpoint: https://createpoint.qti.qualcomm.com(可下载文档,Release Note等)Chipcode: https://chipc ...
- jq后加标签的事件(live事件)
在使用中 live可以对未来元素起作用(比如:js后加的div等) live在jq1.9以上版本已经废除 原:$('#del').live('click',function(){}) 改:$(' ...