Java 将输出从一个文件写入新创建的文件

Java 将输出从一个文件写入新创建的文件,java,Java,我应该先说我对编码完全陌生,这是课堂上的最后一个练习,我在这个练习中“撞到了翘曲11的砖墙” 编写一个程序来读取已经创建的文件,将内容转换为大写,然后创建一个新文件并将大写内容写入其中?以下是我的班级和主要课程: import java.io.*; import java.util.*; public class readfile{ private Formatter z; private Scanner x; public void openFile(){ try{

我应该先说我对编码完全陌生,这是课堂上的最后一个练习,我在这个练习中“撞到了翘曲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();

}

}
我能够打开、阅读和转换内容。我可以创建一个新文件。唯一不起作用的是将转换后的内容(大写)写入新文件。 任何帮助都将不胜感激。
谢谢。

当您从文件中读取时,您只是在向屏幕写入。实际上,您需要将这些行存储在某种数据结构中——我建议使用
列表

List<String> upperCaseLines = new ArrayList<>();

// inside readFile() while loop:
String line = x.next();
String uppercase = line.toUpperCase();
upperCaseLines.add(uppercase);
此外,您还需要将变量重命名为有意义的名称(什么是
x
?),并且您的类名应该以大写字母开头


坦率地说,更好的设计是打开这两个文件,并在读取输入文件时写入输出文件。

在创建格式化程序调用方法f.createNewFile()之前,在方法createFile中;在创建的文件实例上,可以发布实际使用的代码吗?您有读取和转换的本地字符串。我看不到有人试图将任何内容写入输出文件-从未。。。更不用说“糟糕的设计”,你打开一个文件,创建另一个,然后
a.closeFile()
-应该关闭哪一个?就一个?(哪一个?)两者都有?
for(String line : upperCaseLines) {
    // write line to file
}