2014-12-08 4 views
0

Для этой программы мне необходимо объединить два файла, один из которых содержит имена учеников и идентификационные номера, а другой - коды классов. Затем я должен сопоставить идентификационный код со студентами с идентификационными кодами классов и сортировать их по алфавиту в новый список классов.Java: Как слить два .txt-файла в один?

Мне нужно использовать массивы и бинарный поиск.

Я просто не уверен, как это сделать. Я не так много, но то, что у меня есть это:

import java.io.*; 
import java.util.Scanner; 

public class MergingFiles { 


    public static void main(String[] args) throws IOException { 
    Scanner studentFile = new Scanner(new File("students.txt")); 
    Scanner classFile = new Scanner(new File("classes.txt")); 

    while (studentFile.hasNext()){ 
    } 
    while (classFile.hasNext()){ 
    } 
     //as long as another line, keeps running 
     //sort students alphabetically 
     //2 substrings, one id #, one students 
     //read id codes, match with name 
     //create new roster file 


    } 



} 

Я знаю, что нужно поместить содержимое в массив, но какой из массива и как бы я это пишу?

Любая помощь приветствуется.

Спасибо.

+0

Что вы нарисовали до сих пор? Объекты? Двумерные массивы? – Catchwa

+0

Да. Мы рассмотрели их вместе с Reader, Writer и Buffered Reader и Writer. – throwaway298

+0

можете ли вы опубликовать краткий образец формата обоих файлов? – Catchwa

ответ

0

Как насчет:

1.) Создайте Student класс с переменными name и id

2.) При сканировании списка студентов добавить их в Student[]. Массивы не могут быть изменены (и вам кажется, что вам не разрешено использовать списки), поэтому подумайте о том, как вы будете знать, как увеличить размер массива, чтобы вам не пришлось изменять его размер (если вы не хотите добавлять код для изменения размера массива «на лету», который также позволяет делать).

3.) Сортировка Student[] (требование бинарного поиска). Если вам нужно сделать это вручную, вам придется написать свою собственную реализацию сортировки (подумайте о том, какое поле объекта Student вы собираетесь сравнивать). Если вам разрешено использовать API sort methods (и у вас есть покрытые интерфейсы), то просто сделайте Student реализовать Comparable, затем позвоните Arrays.sort.

4.) При сканировании через файл классов я предполагаю, что вам нужно будет использовать двоичный поиск здесь, чтобы найти Student (на основе их идентификатора), но я не уверен в формате входных файлов, поэтому Я не уверен, что могу дать вам слишком много рекомендаций.

Смежные вопросы