У меня есть txt-файл «Основной список» со 100 студентами и их информацией, который содержит заголовок «Идентификатор студента, Имя студента, Курс, Оценка», а затем под каждым заголовком есть данные студента, такие как «91, Дональд Шульц». ,COMPSCI 321,87", что соответствует заголовкам выше. Я предполагаю взять существующие данные из основного списка, а затем проанализировать их в 3 отдельных txt-файла csv «course1.txt, Course2.txt и Course3.txt». Используя fileOutputStream. Но я не могу использовать список массивов, список, переключатель, сопоставление. Строго в пределах fileOutputStream, fileinput, objectout и objectinputstream могут вызывать регулярные выражения и сериализоваться.
public void processStudentData() {
Student[] students = readStudentsFromFile();
sortStudentsByCourseAndGrade(students);
// Separate students by course and write to CSV files
try ( FileOutputStream fileOutputStream1 = new FileOutputStream("course1.txt", true);
FileOutputStream fileOutputStream2 = new FileOutputStream("course2.txt", true);
FileOutputStream fileOutputStream3 = new FileOutputStream("course3.txt", true);
BufferedWriter writer1 = new BufferedWriter(new OutputStreamWriter(fileOutputStream1));
BufferedWriter writer2 = new BufferedWriter(new OutputStreamWriter(fileOutputStream2));
BufferedWriter writer3 = new BufferedWriter(new OutputStreamWriter(fileOutputStream3))) {
writer1.write("Student ID,Student Name,Course,Grade\n");
writer2.write("Student ID,Student Name,Course,Grade\n");
writer3.write("Student ID,Student Name,Course,Grade\n");
BufferedWriter writer;
for (Student student : students) {
if (student != null) {
String fileName;
if (student.getCourse().equals("COMPSCI")) {
fileName = "course1.txt";
writer = writer1; // Use writer1 for COMPSCI
} else if (student.getCourse().equals("APMTH")) {
fileName = "course2.txt";
writer = writer2; // Use writer2 for APMTH
} else if (student.getCourse().equals("STAT")) {
fileName = "course3.txt";
writer = writer3; // Use writer3 for STAT
} else {
// Handle unknown courses
continue;
}
writeStudentToTxt(writer, student, fileName);
}
}
} catch (IOException e) {
e.printStackTrace();
Подробнее здесь: https://stackoverflow.com/questions/784 ... v-txt-file
Запись в 3 новых txt-файла CSV из 1 существующего txt-файла CSV [закрыто] ⇐ JAVA
Программисты JAVA общаются здесь
1714947506
Anonymous
У меня есть txt-файл «Основной список» со 100 студентами и их информацией, который содержит заголовок «Идентификатор студента, Имя студента, Курс, Оценка», а затем под каждым заголовком есть данные студента, такие как «91, Дональд Шульц». ,COMPSCI 321,87", что соответствует заголовкам выше. Я предполагаю взять существующие данные из основного списка, а затем проанализировать их в 3 отдельных txt-файла csv «course1.txt, Course2.txt и Course3.txt». Используя fileOutputStream. Но я не могу использовать список массивов, список, переключатель, сопоставление. Строго в пределах fileOutputStream, fileinput, objectout и objectinputstream могут вызывать регулярные выражения и сериализоваться.
public void processStudentData() {
Student[] students = readStudentsFromFile();
sortStudentsByCourseAndGrade(students);
// Separate students by course and write to CSV files
try ( FileOutputStream fileOutputStream1 = new FileOutputStream("course1.txt", true);
FileOutputStream fileOutputStream2 = new FileOutputStream("course2.txt", true);
FileOutputStream fileOutputStream3 = new FileOutputStream("course3.txt", true);
BufferedWriter writer1 = new BufferedWriter(new OutputStreamWriter(fileOutputStream1));
BufferedWriter writer2 = new BufferedWriter(new OutputStreamWriter(fileOutputStream2));
BufferedWriter writer3 = new BufferedWriter(new OutputStreamWriter(fileOutputStream3))) {
writer1.write("Student ID,Student Name,Course,Grade\n");
writer2.write("Student ID,Student Name,Course,Grade\n");
writer3.write("Student ID,Student Name,Course,Grade\n");
BufferedWriter writer;
for (Student student : students) {
if (student != null) {
String fileName;
if (student.getCourse().equals("COMPSCI")) {
fileName = "course1.txt";
writer = writer1; // Use writer1 for COMPSCI
} else if (student.getCourse().equals("APMTH")) {
fileName = "course2.txt";
writer = writer2; // Use writer2 for APMTH
} else if (student.getCourse().equals("STAT")) {
fileName = "course3.txt";
writer = writer3; // Use writer3 for STAT
} else {
// Handle unknown courses
continue;
}
writeStudentToTxt(writer, student, fileName);
}
}
} catch (IOException e) {
e.printStackTrace();
Подробнее здесь: [url]https://stackoverflow.com/questions/78433816/writing-to-3-new-csv-txt-files-from-1-existing-csv-txt-file[/url]
Ответить
1 сообщение
• Страница 1 из 1
Перейти
- Кемерово-IT
- ↳ Javascript
- ↳ C#
- ↳ JAVA
- ↳ Elasticsearch aggregation
- ↳ Python
- ↳ Php
- ↳ Android
- ↳ Html
- ↳ Jquery
- ↳ C++
- ↳ IOS
- ↳ CSS
- ↳ Excel
- ↳ Linux
- ↳ Apache
- ↳ MySql
- Детский мир
- Для души
- ↳ Музыкальные инструменты даром
- ↳ Печатная продукция даром
- Внешняя красота и здоровье
- ↳ Одежда и обувь для взрослых даром
- ↳ Товары для здоровья
- ↳ Физкультура и спорт
- Техника - даром!
- ↳ Автомобилистам
- ↳ Компьютерная техника
- ↳ Плиты: газовые и электрические
- ↳ Холодильники
- ↳ Стиральные машины
- ↳ Телевизоры
- ↳ Телефоны, смартфоны, плашеты
- ↳ Швейные машинки
- ↳ Прочая электроника и техника
- ↳ Фототехника
- Ремонт и интерьер
- ↳ Стройматериалы, инструмент
- ↳ Мебель и предметы интерьера даром
- ↳ Cантехника
- Другие темы
- ↳ Разное даром
- ↳ Давай меняться!
- ↳ Отдам\возьму за копеечку
- ↳ Работа и подработка в Кемерове
- ↳ Давай с тобой поговорим...
Мобильная версия