アップロードしたスプレッドシートをディスクに保存する必要があります。私は同じコードを使用してファイルを受信すると、Excelからのエラーが壊れています。Javaを使用してスプレッドシートをディスクに保存する
byte[] bytes = null;
File uploadedFile = new File("D://xlsxTest//BNG Issue.xlsx");
File file = new File("D://xlsxTest//sample1.xlsx");
FileOutputStream outStream = null;
InputStream inputStream = null;
try{
if(!file.exists()){
file.createNewFile();
}
outStream = new FileOutputStream(file);
if (uploadedFile != null) {
ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream();
inputStream = new FileInputStream(uploadedFile);;
int c = 0;
while (c != -1) {
c = inputStream.read();
byteArrayOutputStream.write((char) c);
}
bytes = byteArrayOutputStream.toByteArray();
}
outStream.write(bytes);
}catch(Exception e){
e.printStackTrace();
}finally{
try{
outStream.close();
}catch(Exception e){
e.printStackTrace();
}
}
私は83KBのサイズのファイルを使用しようとしましたが、結果のファイルは82.5KBです。 ご協力いただければ幸いです。おかげさまで
正しく保存していて、内部のテキストを読み取れないようですか? –
'outStream.flush()'を閉じる前に追加してください。 – Berger
再生できません。ファイルの最後のテストは** **書き込み後に**発生するので、コードではファイルの最後にバイト(-1)を追加するだけです。しかし、決して短いコピーをもたらすべきではありません。上記のコード "D://xlsxTest//sample1.xlsx"が "D:// xlsxTest // BNG Issue.xlsx"よりも短いことを確認できますか? –