問題タブ [fileinputstream]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
java - サーブレット:ServletInputStreamをFileInputStreamに変換します
私は、xmlファイルを受け取り、それを別のクラスに渡し、いくつかのコメントを含むhtmlファイルをクライアントに返すサーブレットを作成しています。次のようなinput-xmlを取得しています:
input = request.getInputStream();
ただし、この入力はServletInputStreamであり、他のクラス(コメント用)にはFileInputStreamが必要です。
XMLEventReader(他のクラス)にServletInputStreamを指定すると、解析エラーが発生します。
そして、これはfileinputstreamではなくservletinputstreamが原因だと思います。
ご挨拶私は誰かが私を助けることができることを願っています:)
java - FileInputStream read() がブロックされないのはなぜですか?
1行のテキストをファイルに書き込み、ユーザーがリターンを押すまで待ってから別の行を書き込んで終了するWriterプログラムがあります。その後、ファイルは閉じられます。コード:
最初に次から始めます。
Javaライター
次に、ファイルの書き込みがまだ完了していない限り (つまり、pw.close() がまだ呼び出されていない場合)、ブロックする必要があるリーダー プログラムもあります。コード:
皮切りに:
Java ReaderFIS
Javadocドキュメントのこれに基づいて、最初の「Hello World」テキストを読み取った後、 read() がブロックされると予想しました。
この入力ストリームから 1 バイトのデータを読み取ります。入力がまだ利用できない場合、このメソッドはブロックします。経由: http://docs.oracle.com/javase/6/docs/api/java/io/FileInputStream.html#read()
しかし、ReaderFIS は "Hello World" を読み取った直後に実行され、明らかに EOF が表示されます。だからブロックしない!文字値をダンプし、次に -1 をダンプしてから、「exiting」を出力します。
出力: ch = 72 ch = 101 ch = 108 ch = 108 ch = 111 ch = 32 ch = 87 ch = 111 ch = 114 ch = 108 ch = 100 最後の ch = -1 終了
私が試した他のバリエーションは次のとおりです。ライターでファイルを開いたままにしておくだけで、何も書き込まずに、各書き込みの間に 500 ミリ秒の一時停止を伴うファイル。
これらのバリエーションのいずれも、ReaderFIS プログラムをブロックする原因にはならず、常に終了します。
リーダー プログラムがブロックしないのはなぜですか? 非常に明白な何かを見逃しましたか?ReaderFIS プログラムが EOF (-1) を見つけたようですが、なぜですか? ファイルは Writer プログラムによってまだ閉じられていません。
「面白い」追記: System.in.read() がブロックしている! (そして、ユーザーが Enter を押すのを待っています)。
PS: Windows XP と Suse Linux でこれを試しました。Windows では、ライターの実行中にファイルを削除できません (予想どおりです)。
よろしく、マルコ
c++ - C++ でのテキスト ファイル入力の問題
テキスト ファイルを読み取らなければなりません。ただし、特定のテキスト ファイルの 1 つが問題を引き起こしています。テキスト ファイルが巨大 (電子ブック全体) であるだけでなく、いくつかのアクセント付きの文字もあります。適切な句読点またはスペースで停止して、一度に 1 文字ずつ単語を読み込んでいます。これを行うには、文字やアポストロフィなどの句読点に適切な ASCII をテストします。アクセント付きの文字も読むことができますが、他の文字とは分けておく方法はありますか? ランダムなライブラリを追加する必要がありますか?
単語を取得するための私のコードは次のとおりです。
これを除く、これまでのすべてのファイルで動作します。
ここで入力を確認できます-> http://www.gutenberg.org/cache/epub/244/pg244.txt
java - Javaを使用してフォルダー構造を圧縮します
私のマシンで次のファイル構造を圧縮しようとしていますが、
ここでの問題は、Java を使用して上記のファイル構造を圧縮できないことです。私はグーグルを持っていて、次のコードサンプルを見つけましたが、特定のフォルダー内でのみファイルを圧縮するだけです。
上記のコードでは、 out はフォルダーであり、いくつかのファイルが必要です。また、フォルダーを空にすることはできません。その場合、例外 java.util.zip.ZipException がスローされるか、その中にファイルが含まれていてもサブフォルダーを含めることができません (例:out \newfolder\image.jpeg) その場合、java.io.FileNotFoundException: out\newfolder (アクセスが拒否されます) がスローされます。
私の場合、フォルダー構造に沿って空のフォルダーが存在する可能性があるデータベースにクエリを実行して、上記のファイル構造を構築します。
誰かが私に解決策を教えてもらえますか?
ありがとうございました。
java - パスを含むFileInputStreamにワイルドカードが含まれています
データベースからいくつかのファイルのフルパスを取得し、それらのファイルをそのパス内に圧縮します。したがって、ここでの問題は、ディレクトリとファイルに対してもパスにワイルドカードが含まれていることです。例えば:
では、これらのxmlファイルをファイル入力ストリームへのパスの下に置いて後でzipする方法を教えてください。
ワイルドカードがなく、パスだけがファイルが存在するディレクトリを表す場合は、次のようにして各ファイルを追加します。しかし、問題は、私のパスにワイルドカートを含むファイル名が含まれていることです。
ありがとうございました。
java - URL を外部化する最良の方法は何ですか?
アプリケーションに 10 個の URL があり、現在ハードコードされています。これを外部化してファイルに入れ、アプリケーションが読み取れるようにしたいと考えています。
これを行う最善の方法は何ですか?
注: アプリでこのファイルに書き出すことは決してありません。開発者がファイルを開いて、必要に応じて URL を変更できるようにしてほしい。
java - Java: バッファリングされた入力を使用してランダム アクセス ファイルから文字列を読み取る
これまで Java IO API を身近に体験したことがなく、今は本当にイライラしています。それがどれほど奇妙で複雑で、単純なタスクを実行するのがどれほど難しいか、信じがたいです。
私の仕事: 2 つの位置 (開始バイト、終了バイト)pos1
とpos2
. これらの 2 バイト間の行 (開始バイトを含み、終了バイトは含まない) を読み取り、それらを UTF8 String オブジェクトとして使用する必要があります。
たとえば、ほとんどのスクリプト言語では、次のような非常に単純な 1-2-3 ライナーになります (Ruby では、Python、Perl などでも本質的に同じになります)。
Java IO API ではすぐに地獄に落ちます ;) 実際、\n
通常のローカル ファイルから行 ( で終わる)を読み取る方法は 2 つあります。
- および_
getFilePointer()
_seek(long pos)
_ _ _read*()
_read()
_ >かなり遅い)。 - BufferedReaderには優れ
readLine()
たメソッドがあり、 でシークすることもできskip(long n)
ますが、ファイル内の現在の位置は言うまでもなく、既に読み取られた偶数バイトを特定する方法はありません。
私は次のようなものを使用しようとしました:
...そして、fc.position()
現在のファイル読み取り位置を取得fc.position(newPosition)
して設定するために使用しますが、私の場合はうまくいかないようです:BufferedReaderによって行われたバッファの事前充填の位置を返すように見えます-これらカウンターは 16K 単位で切り上げられているようです。
私は本当にそれをすべて自分で実装する必要がありますか?
- ファイル内の位置を取得/設定できるようにする
- バッファファイルの読み込み操作
- UTF8 文字列の読み取りを許可します (または、少なくとも「次まですべてを読み取る」などの操作を許可します
\n
)
すべてを自分で実装するよりも簡単な方法はありますか? 私は何かを監督していますか?
c++ - ベクトルへの C++ 行
うわー、今日はあちこちで質問をしてきました。重複しているように見える場合はお詫びしますが、すべての質問には別の質問があります.1つのことがうまくいかないので.. ....等。
とにかく、私はテキストファイルを持っています:
6 は、2 行目の「floats」の数 (3.0、2.5 など) です。3.0、2.5、-1.5 はすべて一連の float です。6 と 10 はちょうど 2 つの整数です。
私はベクトルを持っています
私がする必要があるのは、2行目を数字に入れることだけです。だから今私は持っている
myfile>> を実行して最初の値 (6) を取得するだけで済みますが、ベクトルに 2 行目を挿入するにはどうすればよいでしょうか? 最初の行 (この場合は 6) を読むことによって、2 行目がどれだけ大きいかを知っているだけであることを思い出してください。
また、最後の 2 つの数値はこのベクトルにあるとは想定されていませんが、2 つの個別の値です。myfile >> a >> b を実行できます。
何度も質問してすみません。しかし、私は文字通りあらゆる場所を探し、おそらく間違った質問をしてきました。
android - 12kb のテキスト ファイルを開くのに時間がかかりすぎます....?
次のコードは機能しますが、小さなファイルを開くには時間がかかりすぎます (1 分以上)。LogCat には、「GC_FOR_MALLOC が解放された #### オブジェクト / ###### バイト (##ms)」のインスタンスが多数表示されます。助言がありますか?
アップデート:
これは今のように見えます:
皆さん、ありがとうございました!!
java - Reader と InputStream の違いは何ですか?
Reader と InputStream の違いは何ですか? そして、いつ何を使うのですか?Reader を使用して文字を読み取ることができる場合、なぜ inputstream を使用するのでしょうか。