java读取文件指定字符串,java怎么将读取的文件的指定字符串大写

本文指导如何使用Java通过BufferedReader和BufferedWriter操作读取test.txt文件,将所有出现的hello转换为大写,然后写回文件或另存为test1.txt。涉及正则表达式和流处理技术。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

java如何将读取的文件的指定字符串大写

比如我想读取一个名为test.txt的文件,然后我指定将文件中出现的所有“hello”这个单词都大写,然后写入test.txt这个文件,也可以写入一个新文件。这该怎么写啊?我自己尝试了用filereader,但是不知道怎么把in.read()读的数据流转化为字符,我也想过用bufferedreader(),但是我也不知道具体该怎么做。请大手们指教一下

11045837.gif

------解决思路----------------------

IO操作。。。多看API。。。。

------解决思路----------------------

import java.io.*;

public class Test {

public static void main(String[] args) {

BufferedReader br = null;

BufferedWriter bw = null;

try {

br = new BufferedReader(new InputStreamReader(new FileInputStream(

"d:\\test.txt")));

bw = new BufferedWriter(new OutputStreamWriter(

new FileOutputStream("d:\\test1.txt")));

String line = null;

while ((line = br.readLine()) != null) {

line = line.replaceAll("hello", "HELLO");

bw.write(line);

bw.write(13);

bw.write(10);

}

} catch (Exception e) {

e.printStackTrace();

} finally {

try {

br.close();

} catch (Exception e) {

}

try {

bw.close();

} catch (Exception e) {

}

}

}

}

给你写的是重写了一个文件,而不是直接覆盖,直接覆盖的情况下,当文件很大会导致内存溢出,你如果希望是覆盖源文件的话,则可以在这段代码执行完之后,将原文件删除,并将新文件改名即可。

------解决思路----------------------

用  toUpperCase  , ,public String toUpperCase()

------解决思路----------------------

引用:Quote: 引用:大哥,那个bw.write(13)和bw.write(10)是什么作用啊?

回车跟换行

------解决思路----------------------

楼上的bufferReader是个好主意,读一部分处理一部分,不用全部先加载进内存

楼主想完全匹配一个单词,正则表达式里写\b,\b是正则表达式里表示单词分割的特殊字符,"\bhello\b"会严格匹配hello这个单词而不会把helloword这种找出来:

public void upperWordsOfFile(String filePath,String word){

BufferedReader br = null;

BufferedWriter bw = null;

String outFilePath = filePath.substring(0,filePath.lastIndexOf(File.separator))+File.separator+"out";

String parttern = "\b"+word+"\b";

String upperWord = word.toUpperCase();

try {

br = new BufferedReader(new InputStreamReader(new FileInputStream(filePath)));

bw = new BufferedWriter(new OutputStreamWriter(new FileOutputStream(outFilePath)));

String line = null;

while ((line = br.readLine()) != null) {

line = line.replaceAll(parttern, upperWord);

bw.write(line);

}

} catch (Exception e) {

e.printStackTrace();

} finally {

try {

br.close();

bw.close();

} catch (Exception e) {

}

}

------解决思路----------------------

基本上就是11楼的说法了。

如果你不嫌麻烦的话,也可以将整个字符串拆分成一个个的单词,然后替换你想替换的

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值