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

时间:2015-12-08 23:32:01

标签: java

首先应该说我在编码方面是全新的,这是在课堂上进行的最后一次练习,而且我已经在经线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();

}

}

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

1 个答案:

答案 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?),并且您的类名应以大写字母开头。

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