Я пытаюсь прочитать .txt-файл в java и создать список списков, чтобы поместить каждую строку этого .txt в другой список. Для каждого файла, который я пытался сделать, все было хорошо, но с файлом facebook_combined.txt.gz, который находится на этом link, он не делает это правильно. Пример:Чтение .txt-файла в строке java строки по строке
, если первая строка другого текстового файла, как это 52 99 45 61 70 45
, а второй, как это 70 80 65 91
тогда мой код должен создать список списков названных линий и линий должны быть такими:
line=[[52,99,45,61,70,45][70,80,65,91]].
Но для файла facebook_combinded.txt, если мы предположим, что его первая линия, как этот 0 10 20 30 40 50
тот же код создает список списков строк, как это:
lines=[[0,1][0,2][0,3][0,4][0,5][0,...]].
код я использую ниже:
ArrayList<ArrayList<String>> lines = new ArrayList<ArrayList<String>>();
//read the file
FileInputStream fstream = new FileInputStream("C:\\Users\\facebook_combined.txt");
DataInputStream in = new DataInputStream(fstream);
BufferedReader br = new BufferedReader(new InputStreamReader(in));
while (true)//while the file was read
{
String line = br.readLine();//split the file into the lines
if (line == null)
{
break;//if there are no more lines left
}
Scanner tokenize = new Scanner(line);// split the lines into tokens and make into an arraylist
ArrayList<String> tokens = new ArrayList<String>();
while (tokenize.hasNext()) //while there are still more
{
tokens.add(tokenize.next());
}
lines.add(tokens);
}
br.close();
Вы можете использовать 'Files.readAllLines (yourFilePath)' решить проблему. ([link] (http://docs.oracle.com/javase/8/docs/api/java/nio/file/Files.html#readAllLines-java.nio.file.Path-)) –
спасибо, но это не так Работа. Он возвращает мне снова список, подобный этим линиям = [[0,1] [0,2] [0,3] [0,4] [0,5] [0, ...]]. – lostromos