問題タブ [java-io]
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 - Java:ファイルをロックせずに開いて読み取る
Javaで「tail-f」を模倣できる必要があります。別のプロセスによって書き込まれているログファイルを読み取ろうとしていますが、ファイルを開いて読み取ると、ファイルがロックされ、他のプロセスはそれを書き込めなくなります。どんな助けでも大歓迎です!
現在使用しているコードは次のとおりです。
java - javaで開始インデックスと終了インデックスの間の行を読む
ファイルに10行あるとしましょう。インデックスの開始と終了を指定する 2 つのパラメーターがあります。
StartIndex = 2 // 最初の 2 行を指定します
EndIndex = 3 // 最後の 3 行を指定します
間の行を読む必要があります。インデックスを維持し、スキップすることが方法の1つであることは知っています...しかし、他に効率的な方法はありますか(外部ライブラリを使用しても)?
ありがとう
java - JavaバイナリファイルwriteUTF...仕様を説明する
私は自分でJavaを勉強しています。演習の1つは次のとおりですが、私はそれが何を求めているのか本当に理解していません....これをより詳細で簡単な言葉で説明できるスマートなJavaの達人はいますか?ありがとう
タイプがintまたはdoubleの数値を含むバイナリファイルがあるとします。ファイル内の番号の順序はわかりませんが、ファイルの先頭に文字列で記録されています。文字列は、後続の数字のタイプ順に、intを表すiとdoubleを表すdの文字で構成されます。文字列は、メソッドwriteUTFを使用して書き込まれます。
たとえば、文字列 "iddiiddd"は、ファイルに次のように8つの値が含まれていることを示しています。1つの整数、2つの倍精度浮動小数点数、2つの整数値、3つの倍精度整数。
このバイナリファイルを読み取り、1行に1行に書き込まれた値の新しいテキストファイルを作成します。
java - フォルダが存在するかどうかを確認する
ファイルまたはディレクトリがJavaで作成されたかどうかを判断するにはどうすればよいですか?
データディレクトリがまだ存在しない場合は、基本的にデータディレクトリを作成したいと思います。
ありがとう。
java - に類似したJavaライブラリ/パッケージはありますか?
私は約 14 年間 Java のオンとオフを行ってきましたが、過去 6 年間はほとんど何もしていませんでした。
私は本当に java.io パッケージが嫌いです -- サブクラスとアダプタの軍団です。私は常に「errno」などをポーリングするよりも例外が好きですが、宣言された例外がなくても確実に生活できます。
C の Unix/ANSI stdio.h ルーチンのように機能するものはありますか?
Java 自体が廃止されるまで、java.io とその規則を取り除くことは決してないことを私は知っています。そうは言っても、次のように機能するものが欲しいです(パッケージjavax.stdioと呼びましょう):
fopen() および popen() を模倣するコンストラクターを使用して、テキストまたはバイナリーのファイル (またはパイプ) をシーケンシャルまたはランダムに読み書きできるメインのユーティリティ クラス (おそらく FileStar) を用意します。
このクラスには、fread()、fwrite()、fgets()、fputs()、fseek() など (fprintf()?) などを実行する便利なメソッドが多数含まれている必要があります。オープン/コンストラクト モードと互換性のないメソッドは、単純にスローされます (制限されているときに一部のコレクション クラス/メソッドが行うのと同じように)。
次に、作成したストリームをどのように使用するかを示す一連のインターフェイスを用意します: Sequential、RandomAccess、ReadOnly、WriteOnly、Text、Binary、およびこれらの適切な組み合わせ。おそらく、適切な型キャスト (インターフェース) を返すメソッドがあり、互換性のないものを要求した場合はスローされます。
追加のフレーバーについては、宣言された例外をスキップします。たとえば、javax.stdio.IOException extends RuntimeException です。
このようなオープンソース プロジェクトはありますか?
java - SCJP Book、IO セクション: これはタイプミスですか、それともこのようになるのには理由がありますか?
私の質問は、FileWriter fw をパラメーターとして取るコンストラクターで新しい PrintWriter が作成される行 (編集: 19) に関するものです。実際の書き込みで後で使用されない場合、BufferedWriter bw を FileWriter にチェーンする使用法がわかりません。Java は、bw が何らかの形でプログラムの残りの部分に影響を与える方法で連鎖を適用できますか?
おそらくタイプミスで、PrintWriter out のパラメーターとして bw を使用するつもりだったと思いますが、タイトルが示すように、私はこれが初めてです。
事前にすべてに感謝します。
java - 1MB のファイルを連続して編集する場合、どちらがより効率的ですか?
ファイルシステムをシミュレートして、1MBのファイルを継続的に編集する必要があります。ファイル制御ブロック、FAT、ブロックなどのディレクトリを変更する必要があります。
Proffesor は、更新が行われるたびにファイルを上書きすることを推奨しました。1MB はそれを行うのに数分もかからないはずですが、私はこの方法が好きではありません。
ここに行く方法はFileChannelですか?また、MappedByteBufferを編集すると、マップされたファイル領域の内容もすぐに編集されることを理解していますか? つまり、再帰的にマッピングされていますか?
ありがとう。
java - Java で隠しファイルを変更する
ユーザーがダウンロードするファイルがあり、Java 内でコマンドを実行してファイルを非表示にします。
後でその隠しファイルにアクセスする必要がありますが、取得しています
これは、ファイルが非表示になっていない場合に機能しますが、ファイルを非表示にする必要があるため、ユーザーはファイルを変更できません。では、隠しファイルをどのように変更すればよいのでしょうか? Javaでこれを行う方法はありますか?
アイデアをありがとう。
java - ObjectInputStream は FilterInputStream を拡張すべきではありませんか?
ブロックの引用は Java Docs からのものです -
FilterInputStream には、データの基本的なソースとして使用する他の入力ストリームが含まれており、途中でデータを変換したり、追加機能を提供したりする可能性があります。
DataInputStream を使用すると、アプリケーションは、基礎となる入力ストリームからプリミティブな Java データ型をマシンに依存しない方法で読み取ることができます。
したがってDataInputStream
、FilterInputStream
ObjectInputStream は、ObjectOutputStream を使用して以前に書き込まれたプリミティブ データとオブジェクトを逆シリアル化します。
ただし、何らかの理由で、基になる入力ストリームからオブジェクト (今回はプリミティブ型ではない) も読み取っていますが、ObjectInputStream
拡張されません。FilterInputStream
関連するクラスの分岐は次のとおりです。
同じことの設計上の理由はありますか?
java - Java の Windows 一時ファイル
FILE_ATTRIBUTE_TEMPORARY
属性を持ち、 FILE_FLAG_DELETE_ON_CLOSE
Java を使用して設定されるファイルを Windows で作成する方法は?
ファイルをメモリ内ファイルにしたいのですが。
正確には、アプリケーションのクラッシュなどの場合に一部のデータがディスクに残っている状況を避けたいため、終了時の削除メカニズムは私を満足させません。