0

私はJavaを使用していますが、現在、インターネットからテキストファイルをダウンロードし、そのファイルを読み取ってから、そのファイルをに送信できますScanner。ハードドライブへの書き込みをスキップして、スキャナーに直接送信することはできますか?コードを変更してみましたが、うまくいきませんでした。

URL link = new URL("http://shayconcepts.com/programming/ComicDownloader/version.txt");
ReadableByteChannel rbc = Channels.newChannel(link.openStream());//Gets the html page
FileOutputStream fos = new FileOutputStream("version.txt");//Creates the output name of the output file to be saved to the computer
fos.getChannel().transferFrom(rbc, 0, 1 << 24);
fos.close();
Scanner sc = new Scanner(new FileReader("version.txt"));
4

1 に答える 1

2

はい、それは間違いなく可能です。あなたが言ったのとまったく同じようにしてください:URLから取得した入力ストリームをスキャナーに直接フィードします。

Scanner sc = new Scanner(link.openStream());

つまり、入力ストリームを受け取るコンストラクターもあります。ちなみに、文字セットは2番目の引数として受け入れられます。テキストファイルがプラットフォームのデフォルトの文字エンコードとは異なる文字エンコードである可能性がある場合は、それを利用することをお勧めします。そうでない場合、文字化けのリスクがあります。

Scanner sc = new Scanner(link.openStream(), "UTF-8");
于 2012-09-14T02:26:37.733 に答える