请教大神用JAVA写个小代码

求一个JAVA程序,读取一个txt文件,将里面的大写字母都改成小写字母,而且只保留空格和换行符,其他符号都删掉。谢谢~... 求一个JAVA程序,读取一个txt文件,将里面的大写字母都改成小写字母,而且只保留空格和换行符,其他符号都删掉。谢谢~ 展开
 我来答
MusicAudience
2013-11-11
知道答主
回答量:36
采纳率:0%
帮助的人:24.6万
展开全部
//完全符合你的要求的程序。使用该程序请将txt文件改名为"A.txt"并将该文件放在D盘根目录下。
//生成的结果文件为同目录下的"B.txt"。最后请把分奉上,谢谢!

import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
public class Answer {
private String Fin=new String("D:/A.txt");
private String Fout=new String("D:/B.txt");
private FileInputStream FInStream;
private FileOutputStream FOutStream;
public Answer(){
try {
FInStream=new FileInputStream(Fin);
FOutStream=new FileOutputStream(Fout);
} catch (FileNotFoundException e) {
System.out.println("文件打开错误");
System.exit(-1);
}
}

public void run() throws IOException{
int value=FInStream.read();
byte[] result=new byte[1];
while(value!=-1){
if(value>='A'&&value<='Z'){
result[0]=(byte)(value+32);
FOutStream.write(result);
}else if((value>='a'&&value<='z')||value==' '||value==13||value==10){
result[0]=(byte)value;
FOutStream.write(result);
}
value=FInStream.read();
}
FOutStream.close();
FInStream.close();
}

public static void main(String args[]){
Answer answer=new Answer();
try {
answer.run();
} catch (IOException e) {
System.out.println("文件读取发生未知错误");
System.exit(-2);
}
System.out.println("转换完成");
}

}
更多追问追答
追问
大神,可以帮我改成用Scanner(new File(filename)) 和BufferedWriter(new FileWriter(filename))来读取和输出文件吗(因为我现在只学过这个)?还有,题目要求只保留字母,空格和换行,其他符号全都移除。。。求大神
追答
//哎,需求老是改去改来的。算了,看在双11的份上就再改了:
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileWriter;
import java.io.IOException;
import java.util.Scanner;

public class Answer {
private String sFin=new String("D:/A.txt");
private String sFout=new String("D:/B.txt");
private Scanner FIn;
private BufferedWriter FOut;
public Answer(){
try {
FIn=new Scanner(new File(sFin));
FOut=new BufferedWriter(new FileWriter(sFout));
} catch (FileNotFoundException e) {
System.out.println("文件打开错误");
System.exit(-1);
} catch (IOException e) {
System.exit(-3);
}
}

public void run() throws IOException{
while(FIn.hasNextLine()) {
FOut.append(FIn.nextLine().replaceAll("[^a-zA-Z&&[^\\s]]", "").toLowerCase()+"\r\n");
}
FIn.close();
FOut.close();
}

public static void main(String args[]){
Answer answer=new Answer();
try {
answer.run();
} catch (IOException e) {
System.exit(-2);
}
System.out.println("转换完成");
}

}
0_杰
2013-11-11 · TA获得超过125个赞
知道小有建树答主
回答量:127
采纳率:100%
帮助的人:82.4万
展开全部
package com.zhidao;

import java.io.BufferedWriter;
import java.io.File;
import java.io.FileWriter;
import java.io.IOException;
import java.util.Scanner;

public class RegTxtContext {

/**
* @Description: TODO
* @param args
* @throws IOException
*/
public static void main(String[] args) throws IOException {
String sourceFilePath = "F:/a.txt";
String destinationFilePath = "F:/b.txt";
Scanner in = new Scanner(new File(sourceFilePath));

File destinationFile = new File(destinationFilePath);
if(!destinationFile.exists() && destinationFile.isDirectory()) {
destinationFile.createNewFile();
}

BufferedWriter writer = new BufferedWriter(new FileWriter(destinationFile));

while(in.hasNext()) {
writer.append(in.nextLine().replaceAll("[^a-zA-Z \n]", "").toLowerCase()+"\n");
}

in.close();
writer.flush();
writer.close();

}

}
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
天虹2010
2013-11-11 · TA获得超过164个赞
知道小有建树答主
回答量:284
采纳率:100%
帮助的人:134万
展开全部
这个说小也不少,明天写好给你吧。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式