簡體   English   中英

Java傳遞字符串數組

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM