java如何将读取的文件的指定字符串大写 java 文件读写 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 大哥,说具体点嘛,我查了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) { } } }}给你写的是重写了一个文件,而不是直接覆盖,直接覆盖的情况下,当文件很大会导致内存溢出,你如果希望是覆盖源文件的话,则可以在这段代码执行完之后,将原文件删除,并将新文件改名即可。 Quote: 引用 3 楼 rumlee 的回复:谢谢了,受教了。想到过用replaceAll,可能是对这个方法没掌握好吧,当时有些没想通 用 toUpperCase , ,public String toUpperCase() Quote: 引用 3 楼 rumlee 的回复:大哥,那个bw.write(13)和bw.write(10)是什么作用啊? Quote: 引用 3 楼 rumlee 的回复:这样也有bug,因为这样的话如果一个单词叫做"testhello",然后按照本意是不需要替换”hello“部分的,但是用replaceAll就把它替换了,能有别的办法吗 Quote: 引用 5 楼 rui888 的回复:关键是怎么才能拿到txt文档的每一个字符串然后再把特定的字符串转化为大写呢,我知道这个方法,但是如果用fileInputreader之类的不知道怎么拿到每个单词啊,它取出来是数字流的嘛,不知道怎么赋值给变量,所以这个方法来怎么用啊 回车跟换行[/quote恩恩,后来我去试了一下,一个作用是换行,另外一个是支持中文显示。谢谢哈。但是问题还是没解决啊 楼上的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) { } } return;?? 问一个很基础的问题! Socket连接求助,急~~~~谢谢 做过报表打印的朋友都过来帮我看看。 请教下分支定界怎么写.. 比尔盖茨遭到枪杀了 java支不支持矢量图?支持什么格式? 纠正Java静态内部类的谣言 猜拳游戏求加一个while大循环,一直执行它! 接口继承的问题 用JavaSE可以实现这个功能吗???求解决... 为什么在JPanel上加滚动条不成功啊,滚动条不能滚动
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) { }
} }}
给你写的是重写了一个文件,而不是直接覆盖,直接覆盖的情况下,当文件很大会导致内存溢出,你如果希望是覆盖源文件的话,则可以在这段代码执行完之后,将原文件删除,并将新文件改名即可。
回车跟换行[/quote恩恩,后来我去试了一下,一个作用是换行,另外一个是支持中文显示。谢谢哈。但是问题还是没解决啊
楼主想完全匹配一个单词,正则表达式里写\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) { } }