30 일 동안 특정 주식의 실적을보고 있습니다. 나는 CSV 파일로 나타나는 Yahoo finance에서 데이터를 다운로드했다. 내 데이터 집합에 새 열을 만들어 열고 refer to column H as where the output should appear을 사용하여 열림과 닫음 간의 일일 비율 변경을 표시하려면 어떻게해야합니까?java로 새 CSV 파일을 만들어 새 열을 추가하십시오.
미리 감사드립니다.
30 일 동안 특정 주식의 실적을보고 있습니다. 나는 CSV 파일로 나타나는 Yahoo finance에서 데이터를 다운로드했다. 내 데이터 집합에 새 열을 만들어 열고 refer to column H as where the output should appear을 사용하여 열림과 닫음 간의 일일 비율 변경을 표시하려면 어떻게해야합니까?java로 새 CSV 파일을 만들어 새 열을 추가하십시오.
미리 감사드립니다.
파일을 한 줄씩 편집하고 concat() 기능을 사용하여 구분 문자를 추가 할 수 있습니다.
FileReader or BufferedReader으로 파일을 열고 구문 분석을 시작하십시오.
공식 자바 독 : https://docs.oracle.com/javase/7/docs/api/java/lang/String.html#concat(java.lang.String)
도 this 참조하십시오. OpenCSV와
: http://opencsv.sourceforge.net/
public class OpenCSVTest {
public static void main(String[] args) {
StringWriter target = new StringWriter();
try(CSVReader reader = new CSVReader(new StringReader("my,test"));
CSVWriter writer = new CSVWriter(target);) {
for(String[] line : reader) {
String[] added = Arrays.copyOf(line, line.length + 1);
added[added.length-1] = "addition";
writer.writeNext(added);
}
} catch (IOException e) {
e.printStackTrace();
}
System.out.println(target.toString());
}
}
당신은 대체 할 수 StringReader
하고 입력 및 출력 StringWriter
. 그러면 독자가 CSV의 각 행을 반복하여 읽습니다. 원본 줄을 복사하고 새 열을 추가하여 대상에 쓸 수 있습니다. 코드의
고장 :
try(CSVReader reader = new CSVReader(new StringReader("my,test"));
CSVWriter writer = new CSVWriter(target);) { ... }
이 시도 -과 - 자원 블록입니다. 그것은 완료 후 리더와 작가가 닫혀 있는지 확인합니다.
for(String[] line : reader) {
String[] added = Arrays.copyOf(line, line.length + 1);
added[added.length-1] = "addition";
writer.writeNext(added);
}
이것은 루프의 표준입니다. CSVReader는 Iterable
인터페이스를 구현하여 for 루프에서 직접 사용할 수 있습니다.
Arrays.copyOf(line, line.length + 1);
은 전달 된 배열의 복사본을 새 크기로 만드는 함수입니다. 열을 추가하려고하므로 원래 배열 my,test
의 복사본을 만들고 그 끝에 더 많은 공백을 하나 추가하면 다음과 같이 새 값을 할당 할 수 있습니다.
마지막으로, 이 값을 작성자에게 전달하면 대상에 값 (이 경우 StringWriter
)이 제대로 기록됩니다.
"CSV 파일을 어떻게 작성합니까?" –