我有一个课程作业,我必须制作一个程序,它接受一个现有文件,并将所有字母转换为大写。下面是代码的一部分(特别是循环):
// Read lines from the file until no more are left.
while (inputFile.hasNext())
{
// Read the next name.
String friendName = inputFile.nextLine();
// Need line to make all letters uppercase
}
System.out.print("Enter the saved file name: ");
String filename2 = keyboard.nextLine();
当我现在运行它时:我能够打开第一个文本文件并创建第二个txt文件,但新文件中没有字母。
答案 0 :(得分:2)
您可以尝试这样:
File file1 = new File("initial.txt");
File file2 = new File("final.txt");
char CharCounter = 0;
BufferedReader in = (new BufferedReader(newFileReader(file1)));
PrintWriter out = (new PrintWriter(new FileWriter(file2)));
int ch;
while ((ch = in.read()) != -1)
{
if (Character.isLowerCase(ch))
{
ch=Character.toUpperCase(ch);// convert assign variable
}
out.write(ch);
}
in.close();
out.close();
答案 1 :(得分:1)
试试String upper = friendName.toUpperCase()
。
现在upper
字符串的所有字符都是大写字母。请根据需要使用它。请参阅String API
答案 2 :(得分:0)
查看String class documentation并尝试查找将字符串值更改为全部大写的方法。
此外,您需要将输出文件名称放在while
循环之上,然后写入循环内的输出文件,因为对于循环的每次迭代,前一次迭代的字符串值都将丢失。
答案 3 :(得分:0)
使用FileUtils
readFileToString()和writeFileToString()轻松完成工作,
String content = FileUtils.readFileToString(new File(FILE_PATH));
FileUtils.writeStringToFile(new File(FILE_PATH), content.toUpperCase());
答案 4 :(得分:0)
friendName = friendName +System.lineSeparator()+friendName.toUpperCase();
//在while循环结束后,在输出文件中写下friendName的内容。
答案 5 :(得分:0)
试试此演示代码:
import java.io.*;
import java.util.*;
class m{
public static void main (String[] args) {
try
{
FileReader fr = new FileReader("file.java");
BufferedReader br = new BufferedReader(fr);
PrintWriter out = (new PrintWriter(new FileWriter("mahesh.java")));
String s="";
while((s = br.readLine()) != null)
{
out.write(s.toUpperCase()+"\n");
}
out.close();
}
catch(Exception e)
{
e.printStackTrace();
}
}
}