There is a convenient library for reading/writing CSVs in Scala.
To include it in your project, add this to your build.sbt:
libraryDependencies += "com.github.tototoshi" %% "scala-csv" % "1.3.0"
And import it:
import com.github.tototoshi.csv._
Then say you create some data in a loop:
results +=
List(
domain,
conn.getCipherSuite,
cert.hashCode,
cert.getPublicKey().getAlgorithm,
cert.getPublicKey().getFormat,
cert.getSigAlgName,
cert.getSigAlgOID,
cert.getIssuerDN,
cert.getSerialNumber,
cert.getSubjectDN,
cert.getVersion,
cert.getNotAfter,
cert.getNotBefore,
cert.getPublicKey.getFormat,
cert.getPublicKey.getAlgorithm,
cert.getIssuerDN.getName
)
allData ++= data
Then write to a file:
val f = new File("out.csv") val writer = CSVWriter.open(f) writer.writeAll(allData)
This is an example of what it prints out (showing that it does escaping):
www.godaddy.com,TLS_ECDHE_RSA_WITH_3DES_EDE_CBC_SHA,13751580,RSA,X.509,SHA256withRSA,1.2.840.113549.1.1.11,"CN=Go Daddy Root Certificate Authority - G2, O=""GoDaddy.com, Inc."", L=Scottsdale, ST=Arizona, C=US",7,"CN=Go Daddy Secure Certificate Authority - G2, OU=http://certs.godaddy.com/repository/, O=""GoDaddy.com, Inc."", L=Scottsdale, ST=Arizona, C=US",2,Sat May 03 03:00:00 EDT 2031,Tue May 03 03:00:00 EDT 2011,X.509,RSA,"CN=Go Daddy Root Certificate Authority - G2, O=""GoDaddy.com, Inc."", L=Scottsdale, ST=Arizona, C=US"