我对Java很新,我正在做一些练习。我只是简单地处理简单的IO东西,从文件读取然后打印到输出。我也玩过从输入中删除逗号,并让这部分工作。我的问题是当我尝试将数组中的值打印到新文件中时。是否我的数组是在BufferedReader的while循环内创建的?如何获取数组values
中的值可以被BufferedWriter看到?我也很好奇,在打印到输出文件时如何去颠倒数组的顺序?感谢任何帮助的人,我已经搜索,但没有能够遇到任何具体的事情。传递字符串数组的Java
代码:
import java.io.BufferedReader;
import java.io.FileReader;
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.OutputStreamWriter;
import java.io.Writer;
import java.io.FileWriter;
public class Main {
public static void main(String[] args) throws Exception {
BufferedReader br = new BufferedReader(new FileReader("myImport.txt"));
String line = null;
while ((line = br.readLine()) != null) {
String[] values = line.split(",");
System.out.println("Your file has been evaluated, here are the contents:");
for (String str : values) {
System.out.println(str);
}
}
br.close();
try {
File file = new File("myOutput.txt");
// if file doesnt exists, then create it
if (!file.exists()) {
file.createNewFile();
}
FileWriter fw = new FileWriter(file.getAbsoluteFile());
BufferedWriter bw = new BufferedWriter(fw);
bw.write(values);
for (int i = 0; i < values.length; i++) {
fw.write(values[i] + "\n");
}
bw.close();
System.out.println("Done");
} catch (IOException e) {
e.printStackTrace();
}
}
}
只需使用bw.write(值[I] + “\ n”);确保在完成后关闭FileWriter。并且要以相反的顺序执行,只需改变for循环的方向即可:'for(int i = values.length - 1; i> = 0; i--){} – ManoDestra
很难说坏缩进,但它看起来像'values'在'while'循环的范围内,并且'try'块内不能看到。 –
您使用的是IDE吗?因为那会1)保持你的代码格式良好,并且2)告诉你在尝试在while循环外使用'values'时出现编译错误。 –