void (File outputRoot) { final Streamable[] data = { myClassToSubclasses, myClassToClassDependency, myRelativeSourceFilePathToClasses, myClassToRelativeSourceFilePath, myShortClassNameIndex }; final String[] info = { "ClassToSubclasses", "ClassToClassDependency", "SourceFileToClasses", "ClassToSourceFile", "ShortClassNameIndex" }; for (int i = 0; i < data.length; i++) { final File file = new File(outputRoot, info[i]); FileUtil.createIfDoesntExist(file); try (PrintStream stream = new PrintStream(file)) { data[i].toStream(myContext, stream); } catch (FileNotFoundException e) { e.printStackTrace(); } } }