Я хотел бы добавить к предыдущему ответу (не хватает баллов, чтобы просто добавить к комментариям) @ user591593 - при использовании конструктора NO_QUOTE_CHARACTER вы должны экранировать значения самостоятельно. См. StringEscapeUtils
Более того, лучше указать правильную кодировку, такую как UTF-8, вместо того, чтобы предполагать, что системное значение по умолчанию является правильным:
CSVWriter writer = new CSVWriter(new OutputStreamWriter(new FileOutputStream(file), "UTF-8"), '\t', CSVWriter.NO_QUOTE_CHARACTER);
String s = "some fun \t string with \" double quotes and \n new lines";
writer.writeNext(StringEscapeUtils.escapeCsv(s));