- 締切済み
Inputstreamについて
Inputstreamで取得したcsvファイルやテキストファイル の中身の行数を返す方法がわかりません。 どなたか、ご教授お願いいたします。
- qwertys123
- お礼率16% (1/6)
- Java
- 回答数4
- ありがとう数2
- みんなの回答 (4)
- 専門家の回答
みんなの回答
#1です。 私もLineNumberReaderを使うと思います。 ところで、LineNumberReaderは「今読み込んだ行の行数」を返すメソッドはありますが、「総行数」は返せません。 「中身の行数」というのはどちらですか?
- UKY
- ベストアンサー率50% (604/1207)
何も悩まなくとも java.io.LineNumberReader を使えばいいのです。
- BLUEPIXY
- ベストアンサー率50% (3003/5914)
#1>具体的にはどんなかんじでしょうか? import java.io.*; public class Sample { public static void main(String argv[]) throws IOException{ BufferedReader fin = new BufferedReader(new FileReader("data.txt")); String aLine; long n = 0L; while(null!=(aLine = fin.readLine())){ n++; } fin.close(); System.out.println("行数:"+n); } }
読みながら行数をカウントするのではダメですか?
補足
読みながらというのは具体的にはどんなかんじでしょうか?スイマセン..
関連するQ&A
- InputStreamはreadが1回しかできない?
1つのFileInputStreamのクラスから2つのFileOutputStreamのクラス (仮にOutputStream1、OutputStream2とします)へwriteし、 ファイル2つを作成しようとしています。 最初にOutputStream1へwriteし、次にOutputStream2へwriteしたとき、 両方のStreamで作成したファイルが空(0KB)の状態になってしまいます。 1つのInputStreamから連続して2つ以上のOutputStreamに書くことはいけない ことなのでしょうか?(どうしてもやりたいのですが) もしかしてFileInputStreamの完全なコピー(cloneじゃなくシリアライズして 複製を作成する)を作る方法しかないのでしょうか?とはいうものの シリアライズできるInputStreamクラスを作成できず困っていたりします。 (あとOutputStreamをInputStreamに変換できたらなぁとかも思うの ですが無理ですよね・・・?) どなたかご存じの方、是非ご教授下さい。
- ベストアンサー
- Java
- InputStreamクラスの仕様
InputStreamクラスのreadメソッドを使用しています。 InputStreamには1MBのデータがバイナリで格納されており、2KBずつ byte配列にreadメソッドを使用して格納する処理を行っています。 処理自体は問題なく終了するのですが、readメソッドを使用して8KBほど 読み込んだ後、決まってパフォーマンスが悪くなり100Bしか読み取れず、 また8KB読み込んで100B読み込むといった処理になってしまいます・・・。 これはInputStreamのreadクラスの仕様なのでしょうか?それとも何か対策があるのでしょうか? ちなみにInputStreamクラスの元ねたはHTMLにてmultipart/form-dataを使用して アップロードしたファイルデータが格納されています。
- ベストアンサー
- Java
- InputStreamにたまったデータを消す方法
InputStreamにたまったデータを消す方法 私は現在勉強のためにsocketプログラミングをJavaでしているのですが困った事があります。それはInputStreamからreadでデータを読み込んでも、読み込んだデータはStream内に消えずに残っているため、処理が複雑になってしまいます。何かflushのようなstreamにたまったデータを吐き出すメソッドはないのでしょうか?
- ベストアンサー
- Java
- Byte配列をInputStreamに入れるには?
urizakaです Byte配列に入力されたデータをInputStreamに入力する方法ってどうやるんでしたっけ? すみません、宜しくお願いします。
- ベストアンサー
- Java
- CSVファイルのデータの行数を取得したい
こちらではいつもお世話になっています。Perlに関して、初心者ですが教えてください。 CSVファイルについて、データの存在する行数を取得したいと考えています。自分なりに考えたところでは、下記の方法で取得できるのではと思ったのですが・・・・・ open(FH,"data.csv"); @array = <FH>; $count = $#array; close(FH); data.csvは、1行目から順にデータが入っています。 これで、$countに1を足せばCSVデータの行数になるのではないかと考えています。 しかし、実際に動かしてみると、$countには、data.csvにデータがあるのに「-1」(要素なし)が返ってきます。何か間違いがあるのでしょうか。 あるいは、別にCSVデータの行数を取得する方法が他にあれば、教えていただけないでしょうか。 よろしくお願いします。
- ベストアンサー
- Perl
- Stringから直接InputStreamを作成する方法
String値を1度物理的なファイルに書き出すことなく、InputStreamを作成したい場合、どういうコーティングになりますか?
- ベストアンサー
- Java
- csvファイルをAccessに取り込むとデータ数が増える
項目をカンマで区切っただけの単純なcsvファイルをAccessでインポートしてテーブルを作成したら、データ数が増えてしまいました。 (csvファイルをテキストで開いたときの行数と、Accessの行数が異なる) 5000件ぐらいなら、csvもAccessもデータ数は同じなのですが、データ数が大きくなると、csvとAccessのテーブルで6万件とかの差分が出てしまいます。 csvファイルとAccessで、データ数を同じにするにはどうしたら良いでしょうか。 参考になるURLでも良いので、教えて頂ければと思います。 よろしくお願いします!
- 締切済み
- その他(データベース)
- CSVファイルを複数のファイルに分割する方法
CSVファイルの最初の数行を飛ばして、同じ行数ずつ分割して1.csv、2.csv・・・という風に分けたいのですが、行数が膨大で手作業でするにも時間がどのくらいかかるのか分かりません。どなたか簡単な方法を教えてください。
- 締切済み
- その他([技術者向] コンピューター)
- PHPでCSVファイルを編集したい
PHPを触りだして間もない者です。 PHPでCSVファイルを編集したいのですが、上手くいきません。 CSVファイルの中身は{商品番号,名前,住所,年齢}が数行入力されています。 具体的にはPHPで引数の商品番号を基にCSVファイルで編集する行数を決定して、その行の一部項目を変更したいのですが、良い方法はありますでしょうか?
- 締切済み
- PHP
お礼
ありがとうございました