Мне нужно закодировать метод, который позволяет мне ввести список строк, передать их объекту OutputStream и вернуть его, и он должен быть сопоставим с помощью теста JUnit.
Мой метод:
public void gebeAus(OutputStream out, StringListe zeilen) {
byte[] bytesArr;
try {
for(int i = 0; i < zeilen.size(); i++) {
bytesArr = zeilen.get(i).getBytes();
out.write(bytesArr);
out.write('\n');
}
out.flush();
out.close();
}
catch (IOException e) {
e.getStackTrace();
}
}
Часть теста JUnit, которую я записал в тестовый класс:
import java.io.ByteArrayOutputStream;
import java.util.Arrays;
public class SortTest {
private static String[] strings = { "Das", "ist", "ein", "Test", "zum", "Sortieren", "von", "Strings" };
public static void main(String[] args) {
DateiSortierer ds = new DateiSortierer();
ByteArrayOutputStream baos = new ByteArrayOutputStream();
String[] test = {"asfas", "aws", "jzrfjc", "dfhfds", "asfewfg", "wertgwertw"};
StringListe l = new StringListe();
l.addAll(Arrays.asList(test));
ds.gebeAus(baos, l);
System.out.println(l);
System.out.println(baos);
}
}
Вывод списка: [asfas, aws, jzrfj c, dfhfds, asfewfg , wertgwertw], а вывод моего OutputStream - asfas aws jzrfjc dfhfds asfewfg wertgwertw
Здесь тест Junit завершился неудачно.
DateiSortierer:
import java.io.*;
import java.util.*;
public class DateiSortierer {
public StringListe einlesen(String dateiname) throws DateiNichtGefundenAusnahme, IOException {
StringListe liste1 = new StringListe();
File file = new File(dateiname);
BufferedReader br;
try {
br = new BufferedReader(new FileReader(file));
} catch (FileNotFoundException e) {
throw new DateiNichtGefundenAusnahme(dateiname);
}
try {
String line = br.readLine();
while (line != null) {
liste1.add(line);
line = br.readLine();
}
}
finally {
br.close();
}
return liste1;
}
public StringListe sortiere(StringListe unsortierteListe)
throws IllegalArgumentException {
if(unsortierteListe == null) {
throw new IllegalArgumentException("null ist ein ungueltiges Argument.");
}
try {
Collections.sort(unsortierteListe);
}
catch (IllegalArgumentException e) {
}
return unsortierteListe;
}
public void gebeAus(OutputStream out, StringListe zeilen) {
byte[] bytesArr;
try {
for(int i = 0; i < zeilen.size(); i++) {
bytesArr = zeilen.get(i).getBytes();
out.write(bytesArr);
out.write('\n');
}
out.flush();
out.close();
}
catch (IOException e) {
e.getStackTrace();
}
}
public void sortiereDatei(String dateiname) {
DateiSortierer listen = new DateiSortierer();
listen.einlesen(dateiname);
listen.sortiere(listen);
listen.gebeAus(out, zeilen);
}
}
StringListe :
import java.util.ArrayList;
import java.util.LinkedList;
import java.util.List;
/**
* eine Liste die Zeichenketten enthaelt
* @author schreier
*
*/
public class StringListe extends LinkedList<String> {
/**
* erzeugt eine neue leere Liste
*/
public StringListe() {
List<String> liste = new ArrayList<String>();
}
}