最後の列に値を追加したいが、結果が正しくない。私はテストのために3つのファイルがあります。配列値をcsvファイル列に追加できませんでした
row1-1 row1-2
row2-1 row2-2
と私は結果とします:最初、私のファイルが含まれてい
row1-1 row1-2 newstring1
row2-1 row2-2 newstring2
が、私の結果:(ノートを:3つのファイル、最初のファイル以下の結果が、他の人と空のファイル)
私は、コンソールに「I」「私は、コードを++」の下に印刷するときrow1-1 row1-2 newstring1
row2-1 row2-2 newstring1
私はしばらく問題を抱えているが、プログラムは(しばらく)のようで走っ: 結果 書き込み i ++(印刷:i = 1) i ++(印刷:i = 2)
なぜコードはこのように実行されましたか?印刷i = 1の後、i = 2の後。そのため、エラー配列のインデックスを表示します。この問題を解決するには?私は作成する必要があります一意のIDごとに各列。ありがとう。
私のコード:私は見たコードに基づいて
String [] addedColumn = {"newstring1", "newstring2"};
try {
session = jsch.getSession("hpx", "10.170.49.20", 22);
session.setConfig("StrictHostKeyChecking", "no");
session.setPassword("mypassword");
session.connect();
Channel channel = session.openChannel("sftp");
channel.connect();
ChannelSftp sftpChannel = (ChannelSftp) channel;
Vector<ChannelSftp.LsEntry> list = sftpChannel.ls(path_sftp + "*.ONPROGRESS");
Vector<ChannelSftp.LsEntry> listFile = sftpChannel.ls(path_sftp + "*.txt");
Vector<ChannelSftp.LsEntry> listOK = sftpChannel.ls(path_sftp + "*.OK");
String fileNameEntry = null;
String result = "";
int i=0;
if (list.isEmpty()) {
for (ChannelSftp.LsEntry entry : listFile) {
fileNameEntry = entry.getFilename();
// Create new Extention file
newFile = fileNameEntry.split("\\.", -1);
// Copy file to Local
sftpChannel.get(path_sftp + entry.getFilename(), path_local_input + entry.getFilename());
try {
br = new BufferedReader(
new InputStreamReader(new FileInputStream(path_local_input + fileNameEntry)));
bw = new BufferedWriter(
new OutputStreamWriter(new FileOutputStream(path_local_output + fileNameEntry)));
while ((line = br.readLine()) != null) {
result = "\t" + addedColumn[i];
bw.write(line + result + System.lineSeparator());
i++;
}
br.close();
bw.close();
} catch(Exception e){
System.out.println(e);
}
}
}
sftpChannel.exit();
session.disconnect();
} catch (JSchException e) {
e.printStackTrace();
} catch (SftpException e) {
e.printStackTrace();
}
が完了しました。私は0の後にiをリセットする –