質問をすることでしか得られない、回答やアドバイスがある。

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

新規登録して質問してみよう
ただいま回答率
85.48%
ファイル

ファイルとは、文字列に基づいた名前又はパスからアクセスすることができる、任意の情報のブロック又は情報を格納するためのリソースです。

Java

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

コンパイルエラー

コンパイルのフェーズで生成されるエラーです。よく無効なシンタックスやタイプが含まれているとき発生します。

Q&A

解決済

1回答

2201閲覧

Listを使ってファイルの出力

j-nagnn

総合スコア21

ファイル

ファイルとは、文字列に基づいた名前又はパスからアクセスすることができる、任意の情報のブロック又は情報を格納するためのリソースです。

Java

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

コンパイルエラー

コンパイルのフェーズで生成されるエラーです。よく無効なシンタックスやタイプが含まれているとき発生します。

0グッド

0クリップ

投稿2020/07/10 10:14

現在Eclipceで、Javaの勉強をしています。
ファイルの出力の際、Listを使って、出力できるかどうかを試しています。

java

1package chapter16; 2import java.io.*; 3import java.nio.charset.Charset; 4import java.nio.file.*; 5 6import java.util.*; 7 8public class BinaliWrite2 { 9 10 public static void main(String[] args) { 11 // TODO 自動生成されたメソッド・スタブ 12 try { 13 /* バイナリデータを書き込む */ 14 BufferedOutputStream bf = new BufferedOutputStream 15 (new FileOutputStream("C:/Users/Documents/binaryJ.txt")); 16 17 //ASCIIコードを書き込む 18 byte b1 = 74; //ASCII:(J) 19 byte b2 = 65; //ASCII:(A) 20 byte b3 = 86; //ASCII:(V) 21 byte b4 = 65; //ASCII:(A) 22 23 List<Byte> bb = new ArrayList<Byte>(); 24 bb.add(b1) ; //ASCII:(J) 25 bb.add(b2); //ASCII:(A) 26 bb.add(b3); //ASCII:(V) 27 bb.add (b4); //ASCII:(A) 28 29 String dir = "C:/Users//Documents"; 30 String filename = "binaryJ.txt"; 31 Files.write(Paths.get(dir,filename), bb,Charset.forName("UTF-8"), StandardOpenOption.WRITE); 32 33 //bf.write(b1); 34 //bf.write(b2); 35 //bf.write(b3); 36 //bf.write(b4); 37 38 //ファイルに書き込む 39 bf.flush(); 40 41 //ファイルをクローズする 42 bf.close(); 43 }catch(IOException e) { 44 e.printStackTrace(); 45 } 46 } 47 48}

しかし

Java

1 Files.**write**(Paths.get(dir,filename), bb,Charset.forName("UTF-8"), StandardOpenOption.WRITE); 2

のwriteでコンパイルエラーが発生しており、以下の文章が出ています

引用テキスト 型 Files のメソッド

write(Path, Iterable<? extends CharSequence>, Charset, OpenOption...) は引数 (Path, List<Byte>, Charset, StandardOpenOption) に適用できません

これってリスト型変数は受け付けないということなのでしょうか?

あと、何百行以上もあるデータをファイルに出力するときは、何を使うのでしょうか?参考にさせていただきたいです。

よろしくお願いします。

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

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

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

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

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

guest

回答1

0

ベストアンサー

型 Files のメソッド

write(Path, Iterable<? extends CharSequence>, Charset, OpenOption...) は引数 (Path, List<Byte>, Charset, StandardOpenOption) に適用できません

writeメソッドの第2引数のジェネリクスは、CharSequenceかそのサブタイプである必要があります。例えば、List<String>など。

投稿2020/07/10 10:22

swordone

総合スコア20651

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

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

j-nagnn

2020/07/10 10:27

Listの型はcharやStringといった文字型のみということですか?
j-nagnn

2020/07/10 12:44

Charは違うんですね。失礼しました
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問