[英]Java passing a string array
我剛接觸Java,正在做一些練習。 我現在只是在搞弄簡單的IO東西,從文件中讀取然后打印到輸出。 我還玩過刪除輸入中的逗號,並使該部分正常工作。 我的問題是當我嘗試將數組中的值打印到新文件中時。 我的數組是在BufferedReader的while循環內創建的事實嗎? 如何獲得數組值中的values
以供BufferedWriter查看? 我也很好奇在打印到輸出文件時如何反轉數組的順序? 感謝您的幫助,我已經搜索過,但沒有遇到任何具體問題。
碼:
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();
}
}
}
使數組對作者可見的最簡單方法是在設置數組之前對其進行聲明。
String line = null;
String[] values = null;
然后在while循環中,實例化它。
values = line.split(",");
這樣作者就可以看到它。
要訪問您的values array
您必須將其聲明為類成員或在函數頂部:
public class Main {
String[] values;
}
您可能需要在列表中添加values
並遍歷列表,或者還可以在從文件中讀取內容時進行寫操作。
由於值的范圍是在while循環中讀取的,因此您可以選擇在打印時進行寫入。 那是:
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);
fw.write(str + "\n");
}
}
您可以簡單地存儲一個ArrayList並將文件的每個分割行添加到該列表。 然后,您可以稍后遍歷此列表。
List<String[]> linesList = new ArrayList<>();
while ((line = br.readLine()) != null) {
String[] values = line.split(",");
linesList.add(values);
System.out.println("Your file has been evaluated, here are the contents:");
for (String str : values) {
System.out.println(str);
}
}
然后,您可以稍后對其進行迭代...
for (String[] values : linesList) {
for (var i = values.length - 1; i >= 0; i--) {
String value = values[i];
// Store your value here using your FileWriter, etc.
}
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.