首先应该说我在编码方面是全新的,这是在课堂上进行的最后一次练习,而且我已经在经线11"打了一堵砖墙。在这一个。
编写一个程序,该程序将读取已创建的文件,将内容转换为大写,然后创建一个新文件并将大写内容写入其中?这是我的班级和主要:
import java.io.*;
import java.util.*;
public class readfile{
private Formatter z;
private Scanner x;
public void openFile(){
try{
x = new Scanner(new File ("week8lowercaseinput.txt"));
}
catch(Exception e){
System.out.println("Couldn't find file");
}
}
public void readFile(){
while(x.hasNext()){
String a = x.next();
String d = a.toUpperCase();
System.out.printf("%s ", d);
}
}
public void createFile(){
try{
z = new Formatter( new File ("WEEK8UPPERCASEOUTPUT.txt"));
}
catch(Exception e){
System.out.println("Couldn't create file.");
}
//z.Format("%s ", d);
}
public void closeFile(){
x.close();
//z.close();
}
}
主类
import java.io.*;
import java.util.*;
import java.lang.*;
class TestReadFile{
public static void main(String[] args){
readfile a = new readfile();
a.openFile();
a.readFile();
a.createFile();
a.closeFile();
}
}
我能够打开,阅读和转换内容。我能够创建一个新文件。唯一不起作用的是将转换后的内容(大写)写入新文件。 任何帮助将不胜感激。 谢谢。
答案 0 :(得分:0)
当你从文件中读取时,你只是写在屏幕上。您实际上需要将行存储在某种数据结构中 - 我建议使用List
。
List<String> upperCaseLines = new ArrayList<>();
// inside readFile() while loop:
String line = x.next();
String uppercase = line.toUpperCase();
upperCaseLines.add(uppercase);
然后您需要做的就是将行写入文件:
for(String line : upperCaseLines) {
// write line to file
}
此外,您还希望将变量重命名为有意义的内容(什么是x
?),并且您的类名应以大写字母开头。
坦率地说,更好的设计是打开两个文件,并在从输入文件中读取时写入输出文件。