Java tutorial
/* * Copyright 2007-2008 Amazon Technologies, Inc. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at: * * http://aws.amazon.com/apache2.0 * * This file is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES * OR CONDITIONS OF ANY KIND, either express or implied. See the * License for the specific language governing permissions and * limitations under the License. */ package com.amazonaws.mturk.addon; import java.io.IOException; import java.util.Map; import org.apache.commons.lang.StringUtils; import com.amazonaws.mturk.util.FileUtil; /** * The HITDataWriter class provides a structured way to write HIT data to a file. * Each row consists of values separated by a delimeter. */ @Deprecated public class HITDataWriter extends AbstractHITDataOutput { public final static String DEFAULT_DELIM = "\t"; private String fileName; private FileUtil file; private String delim; public HITDataWriter(String fileName) throws IOException { this(fileName, DEFAULT_DELIM); } public HITDataWriter(String fileName, String delim) throws IOException { super(); if (fileName == null) { throw new NullPointerException("fileName is null."); } this.fileName = fileName; this.delim = delim; } public void writeLine(String[] fieldValues) throws IOException { writeLinePrivate(fieldValues); } protected synchronized void writeLinePrivate(String[] fieldValues) throws IOException { if (fieldValues == null || fieldValues.length == 0) { throw new IllegalArgumentException("fieldValues is empty."); } String output = StringUtils.join(fieldValues, delim); getFile().saveString(output + "\n", true); // append } private FileUtil getFile() throws IOException { // Don't create the file until it is needed if (file == null) { this.file = new FileUtil(fileName); } return file; } public void setFieldNames(String[] newFieldNames) { super.setFieldNames(newFieldNames); try { writeLinePrivate(newFieldNames); } catch (IOException ioe) { throw new IllegalStateException("Could not write field names to disk.", ioe); } } public void writeValues(Map<String, String> values) throws IOException { writeLinePrivate(getValuesByFieldName(values)); } }