(Java)读一个文本文件,将文件中的所有字符都转变为大写,然后写回到原文件中?哪位高手能告诉我啊? 5
3个回答
展开全部
说一下你错误的原因吧:看一下你的这两行代码:
1、while((b=input.read())!=-1)
2、 while(((b=input.read())!=-1) && ((b=input.read())!=32))
第1次(while)执行完毕的时候文件,读取文件的指针已经到达末尾了,你的第2步继续用(while)从里面读取,肯定是空的,所以后面的执行都不能继续下去。你可以看下参看一下我的代码,功能基本实现了的。
package javaTest;
import java.io.*;
public class CharTest {
//如何用java实现统计文本中的字符数(分包含不包含空格)
//及将大写字母转换为小写字母后复制到另一个文件
FileReader fr=null;
FileWriter fw=null;
BufferedReader br=null;
BufferedWriter bw=null;
String value=null;
String value2="";
int lon;
public static void main(String[] args) {
new CharTest();
}
public CharTest(){
try {
fr=new FileReader("d:/1.txt");
br=new BufferedReader(fr);
while((value=br.readLine())!=null){
value2+=value;
}
//1统计读取到多少个字符
lon=value2.length();
System.out.println("一共读取到"+lon+"个字符");
//2将读取到的数据以空格的方式分割以后放入字符数组中
String string[]=value2.split(" ");
//3统计一共有多少个空格
System.out.println("空格字符数为"+(string.length-1));
//4、将读取到得内容转换成小写
String lowerCase=value2.toLowerCase();
//5、将转换以后的字符串写入到另一个文件中区
fw=new FileWriter("d:/2.txt");
bw=new BufferedWriter(fw);
bw.write(lowerCase);
} catch (Exception e) {
e.printStackTrace();
}finally{
try {
if(br!=null){
br.close();
}
if(fr!=null){
fr.close();
}
if(bw!=null){
bw.close();
}
if(fw!=null){
fw.close();
}
} catch (Exception e) {
e.printStackTrace();
}
}
}
}
展开全部
最简单的方法,随便找一个apache io包“commons-io-1.4.jar”导入到你的java工程里。这个工具包很好找到处都有,然后用下面的代码:
String s = FileUtils.readFileToString(new File("c:/xxxxxxxx.txt"), "utf-8");
FileUtils.writeStringToFile(new File("c:/xxxxxxx2.txt"), s.toUpperCase(), "utf-8");
String s = FileUtils.readFileToString(new File("c:/xxxxxxxx.txt"), "utf-8");
FileUtils.writeStringToFile(new File("c:/xxxxxxx2.txt"), s.toUpperCase(), "utf-8");
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
有没有关闭文件读写流?
肯定程序最后没有关闭
肯定程序最后没有关闭
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询
广告 您可能关注的内容 |