高效读取文件

#每次存一行,不会把内存挤爆
f=open("笔记",encoding='utf-8')
for line in f:
print("line:",line)


# fw=open('nhy','w')
# fw.write("sasa")
# fw.flush()#把缓冲区里面的数据立即写到磁盘上
# fw.close()

# with open('nhy','w') as fw,open('nhy2','w') as fw2:#with可以自动关闭文件不需要加上f.close()

#文件修改
#一、简单粗暴直接
#1、先获取到文件里面的所有内容
#2、修改文件里面的内容
#3、清空旧的文件内容
#4、写入新的文件内容
# with open('user.txt','a+',encoding='utf-8') as fw:
# fw.seek(0)
# data=fw.read()
# new_data=data.replace("123","abc")
# fw.seek(0)
# fw.truncate()
# fw.write(new_data)
# print(new_data)


#高效的处理方式
#1、打开两个文件,将一个文件的内容读出来,写到另外一个文件里面
#2、删除第一个文件,将第二个文件的名字改成第一个文件的名字
import os
with open("歌词",encoding='utf-8') as fr,open(".歌词",'w',encoding='utf-8') as fw:
for line in fr:
# line=line.lstrip()
fw.write(line)
os.remove('歌词')#删除文件
os.rename('.歌词','歌词')#把新文件的名字改成原来文件的名字


歌词:
寂寞当然有一点
测量相爱的誓言
学着谅解
日子就要从孤单里毕业
还有一段路
从此不孤独

转载于:https://www.cnblogs.com/pengwa1226/p/9420295.html

在Java中,高效地读写文件通常涉及到`java.io`包下的几个关键类,如`FileInputStream`, `FileOutputStream`, 和 `BufferedReader`, `PrintWriter`等。以下是一些基本步骤: 1. **打开文件**: 使用`FileInputStream`(用于读取)或`FileOutputStream`(用于写入)创建流,并传递文件路径作为参数。 ```java File file = new File("path_to_your_file"); FileInputStream fis = new FileInputStream(file); FileOutputStream fos = new FileOutputStream(file); ``` 2. **缓冲读取**: 当处理大量数据时,可以使用`BufferedReader`,它一次读取一块数据而不是逐字节读取,提高效率。 ```java BufferedReader br = new BufferedReader(new FileReader(file)); String line; while ((line = br.readLine()) != null) { // 处理每一行数据 } br.close(); ``` 3. **缓冲写入**: 同样,使用`PrintWriter`配合`BufferedWriter`写入数据,也是为了减少I/O操作。 ```java BufferedWriter bw = new BufferedWriter(new FileWriter(file)); bw.write("your_data_here"); bw.newLine(); // 换行 bw.close(); ``` 4. **异常处理**: 任何时候进行文件操作都要记得处理可能出现的`IOException`。 5. **优化关闭**: 使用try-with-resources语句可以自动管理资源关闭,避免忘记关闭文件流。 ```java try (FileInputStream fis = new FileInputStream(file); BufferedReader br = new BufferedReader(new FileReader(file))) { String line; while ((line = br.readLine()) != null) { // process } } catch (IOException e) { e.printStackTrace(); } ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值