我對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'時出現編譯錯誤。 –