🎄teratailクリスマスプレゼントキャンペーン2024🎄』開催中!

\teratail特別グッズやAmazonギフトカード最大2,000円分が当たる!/

詳細はこちら
CSV

CSV(Comma-Separated Values)はコンマで区切られた明白なテキスト値のリストです。もしくは、そのフォーマットでひとつ以上のリストを含むファイルを指します。

Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

Q&A

解決済

2回答

2638閲覧

CSVファイルの中身について

tokyo2020

総合スコア28

CSV

CSV(Comma-Separated Values)はコンマで区切られた明白なテキスト値のリストです。もしくは、そのフォーマットでひとつ以上のリストを含むファイルを指します。

Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

0グッド

0クリップ

投稿2019/11/22 00:50

編集2019/11/22 00:57

「csvファイルの中身がないとき」
という処理をJAVAで行いたいのですが、
新規作成した中身のないcsvファイルのサイズが1KBになっていて、0KBではないのかと疑問に思いました。
わかる方回答お願いいたします。

処理したいメソッドです。fileにcsvが入ります。
中身がない=0byte前提で書いてしまいました。

java

1public boolean data_null_test(File file) { 2 if(file.length() == 0) { 3 return true; 4 }else { 5 return false; 6 } 7}

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

y_waiwai

2019/11/22 00:51

file.length()はどういう値になるんでしょうか
tokyo2020

2019/11/22 00:54

バイト数です txtファイルでデータを入力せず試したところ、trueになったのですが csvだとfalseになってしまいます
quickquip

2019/11/22 00:57

> 新規作成した中身のないcsvファイル ここの手順を具体的に質問に追記しましょう。
azuapricot

2019/11/22 00:59

新規作成した中身のないファイル名「1.csv」を試しにつくってみましたけど0KBにはなりませんでしたよ~
azuapricot

2019/11/22 00:59

(2バイトだった)
tokyo2020

2019/11/22 01:02

azuapricotさん 私も同じく2バイトでしたね
quickquip

2019/11/22 01:09

Windowsで? エクスプローラから? 新規作成>CSV とか? そういう手順?
quickquip

2019/11/22 01:10

まったく伝わらない……なにをしているんだ……
quickquip

2019/11/22 01:10

質問者さんと同じ手順をしているという確信はどこから……?
tokyo2020

2019/11/22 01:12

quiquiさん Windows10で新規Excelに何も加えずそのままCSV形式で保存しています
quickquip

2019/11/22 01:14

情報はここに書かずに質問に追記しましょう。
quickquip

2019/11/22 01:17

Excelのバージョンも要るのでは。拡張子CSVも3種類ぐらいあるはずですけれど"CSV (カンマ区切り)"ですかね。
ttyp03

2019/11/22 01:17

何で新規作成するのかによりますが、例えばExcelで空のCSVを作ると2バイトになって、中身を見ると改行コードのようですね。0x0d,0x0a
tokyo2020

2019/11/22 01:23

ttyp03さん 改行コードですか。 確かに改行コードといわれると納得できますね。 ありがとうございます。スッキリしました。
azuapricot

2019/11/22 01:50

2バイトっていう確証のない条件式で判定するより、既に回答にあるようにきちんとファイルの中身を読み込んで判定したほうがいいんじゃないかなーとは思います
guest

回答2

0

2バイトとか説明のできない条件文を書くのではなく、ちゃんと中身をReadして判定した方がいいのでは?

投稿2019/11/22 01:19

workaholist

総合スコア559

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

自己解決

プロパティでバイト数を確認したところ2バイトになっていたので、==0の部分を2に変えて処理するようにしました。
しかしなぜ2バイト入っていたのだろうか。そういう仕様なんですかね。。。

投稿2019/11/22 01:00

tokyo2020

総合スコア28

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

LouiS0616

2019/11/22 01:09

BOMが付いているのでは?
y_waiwai

2019/11/22 01:24

ああ、BOMだけ、がはいってるのね ==2にするんじゃなくて、<=2 にしときましょう。ホンマの空のファイルきたらコケますぜ
quickquip

2019/11/22 01:30

空ファイルじゃない 1 とか A とかも空と判断するでしょうね。
退会済みユーザー

退会済みユーザー

2019/11/22 01:36

ExcelでCSVを作ると、必ず1行1列で中身空文字列のCSVが出来てしまうというオチな気がします。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.36%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問