Как читать файл и хранить данные в массиве строк

Привет. Файл с именем read.txt и ниже - это файл внутри файла.

OS:B,A,Linux,Windows 7,Windows 
ARCH:32 Bit,64 Bit 
Browser:Chrome,Firefox,IE

Я хочу прочитать файл и хочу хранить данные в массиве String для каждого столбца, spiting with ":" символ.

пример ниже

String a[] = { "A","B","Linux", "Windows 7", "Windows" }; 

String b[] = { "32 Bit", "64 Bit"}; 

String c[] = { "Chrome", "Firefox" ,"IE"};
3 ответа

Одним из способов было бы извлечь каждую линию через ReadLine. После того, как у нас есть строка, содержащая строку, разделите строку, предполагая, что в качестве разделителя мы имеем один символ::. Извлеките 2-й элемент массива и сделайте еще один раскол, используя "," в качестве разделителя


Использование apache commons io...

import java.io.IOException;
import java.util.ArrayList;
import java.util.List;
import org.apache.commons.io.FileUtils;

public class StackOverflowExample {
 public static void main(String[] args) throws IOException{
 List<string> lines = FileUtils.readLines(null, "UTF-8");
 List<string[]> outLines = new ArrayList<string[]>();
 for(int i = 0; i < lines.size(); i++){
 String line = lines.get(i);
 outLines.add(line.split("[:,]"));

 }
 }
}
</string[]></string[]></string>

Как уже указывалось, вы действительно должны включить пример используемого вами кода, который не выполняет то, что вы ожидаете от него. Если вы действительно не знаете, как это сделать вообще, и у вас нет кода - я не уверен, что это все равно поможет.


Вот как вы читаете файл:

BufferedReader reader = new BufferedReader("read.txt");
while((line = reader.readLine()) != null)
{
 //process line
}

Чтобы получить результат, который вы хотите:

ArrayList<string[]> arrays = new ArrayList<string[]>;
BufferedReader reader = new BufferedReader("read.txt");
while((line = reader.readLine()) != null)
{
 //process line
 line = line.split(":")[1];//get the second part
 arrays.add(line.split(","));//split at "," and save into the ArrayList
}
</string[]></string[]>

licensed under cc by-sa 3.0 with attribution.