質問編集履歴
1
調べてみると、ソケット接続にBufferedInputStreamは向いていないとのことなので、InputStreamを使用するよう変更、それに伴いwhile文も変更しました。
title
CHANGED
File without changes
|
body
CHANGED
@@ -32,7 +32,7 @@
|
|
32
32
|
import android.widget.Toast;
|
33
33
|
import android.util.Log;
|
34
34
|
|
35
|
-
import java.io.
|
35
|
+
import java.io.InputStream;
|
36
36
|
import java.io.BufferedWriter;
|
37
37
|
import java.io.File;
|
38
38
|
import java.io.IOException;
|
@@ -107,20 +107,27 @@
|
|
107
107
|
}
|
108
108
|
|
109
109
|
private void StartPick() {
|
110
|
-
try (BufferedInputStream bufferedInputStream =
|
111
|
-
|
110
|
+
try (InputStream inputStream = btSocket.getInputStream();
|
111
|
+
OutputStream outputStream =
|
112
|
-
|
112
|
+
openFileOutput(fileName, Context.MODE_PRIVATE);
|
113
|
+
OutputStreamWriter outputStreamWriter =
|
113
|
-
|
114
|
+
new OutputStreamWriter(outputStream, "UTF-8");
|
115
|
+
BufferedWriter bufferedWriter =
|
114
|
-
|
116
|
+
new BufferedWriter(outputStreamWriter)) {
|
115
117
|
|
116
118
|
// InputStreamのバッファを格納
|
117
119
|
byte[] buffer = new byte[1024];
|
118
120
|
// 取得したバッファサイズを格納
|
119
121
|
int len;
|
120
122
|
|
123
|
+
while (true) {
|
121
|
-
|
124
|
+
int len = inputStream.read(buffer);
|
125
|
+
if (len == -1) {
|
126
|
+
break;
|
127
|
+
}
|
122
128
|
outputStream.write(buffer, 0, len);
|
123
129
|
}
|
130
|
+
|
124
131
|
String readData = outputStream.toString();
|
125
132
|
if (readData.trim() != null && !readData.trim().equals("")) {
|
126
133
|
bufferedWriter.write(readData);
|