ArrayListをファイル出力時、カンマを除外したいです。
Javaを用いて、ICリーダーからデータを読み取り、ファイル出力するAndroidアプリを作成しています。
ArrayListのファイル出力をカンマ区切りでなく改行だけで表したいのですが、どなたか方法を知っていましたら教えていただきたいです。
以下コードと、出力されたファイル(.が表示されないので、StockFileと表示)の内容です。
ReadDataActivity
1public class ReadDataActivity extends AppCompatActivity implements 2 KDCDataReceivedListener, 3 KDCBarcodeDataReceivedListener, 4 KDCGPSDataReceivedListener, 5 KDCMSRDataReceivedListener, 6 KDCNFCDataReceivedListener, 7 KDCConnectionListener 8{ 9 10 private KDCReader kdcReader; 11 private CustomAdapter customAdapter; 12 private HandlerThread handlerThread; 13 private Handler handler; 14 String str = null; 15 String fileName = "Stock.txt"; 16 ArrayList<String> readDataList = new ArrayList<>(); 17 18 19 @Override 20 protected void onCreate(Bundle savedInstanceState) { 21 super.onCreate(savedInstanceState); 22 setContentView(R.layout.activity_qr); 23 24 final ListView listView = findViewById(R.id.lvMessage); 25 Button btnSave = findViewById(R.id.button_save); 26 27 customAdapter = new CustomAdapter(this, android.R.layout.simple_list_item_1, readDataList); 28 29 if (listView != null) { 30 listView.setAdapter(customAdapter); 31 } 32 33 if (btnSave != null) { 34 btnSave.setOnClickListener(new View.OnClickListener() { 35 @Override 36 public void onClick(View v) { 37 saveFile(listView); 38 } 39 }); 40 } 41 42 if (handlerThread == null) { 43 handlerThread = new HandlerThread("HandlerThread"); 44 handlerThread.start(); 45 handler = new Handler(handlerThread.getLooper()); 46 } 47 48 kdcReader = new KDCReader(this, this, this, this, this, this, false); 49 50 } 51 52 private void saveFile(ListView listView) { 53 Object[] obj = new Object[listView.getCount()]; 54 for (int i = 0; i < obj.length; i++) { 55 obj[i] = listView.getItemAtPosition(i); 56 } 57 58 str = Arrays.toString(obj); 59 if (!(str.equals("[]"))) { 60 new AlertDialog.Builder(QRActivity.this) 61 .setTitle(getString(R.string.confirm_save)) 62 .setMessage(getString(R.string.save_msg)) 63 .setPositiveButton(getString(R.string.yes), 64 new DialogInterface.OnClickListener() { 65 66 @Override 67 public void onClick(DialogInterface dialogInterface, int which) { 68 String toastMessage = getString(R.string.saved_msg); 69 toastMake(toastMessage, 0, -200); 70 try { 71 FileOutputStream fos = openFileOutput(fileName, MODE_PRIVATE); 72 fos.write(str.getBytes()); 73 fos.flush(); 74 fos.close(); 75 } catch (IOException e) { 76 e.printStackTrace(); 77 } 78 // MainActivityに遷移 79 Intent intent = new Intent(getApplicationContext(), MainActivity.class); 80 startActivity(intent); 81 } 82 }) 83 .setNegativeButton(getString(R.string.no), null) 84 .show(); 85 86 } else { 87 String toastMessage = "保存に失敗しました。"; 88 toastMake(toastMessage, 0, -200); 89 } 90 } 91 92 private void toastMake(String toastMessage, int x, int y) { 93 Toast toast = Toast.makeText(this, toastMessage, Toast.LENGTH_SHORT); 94 // 位置調整 95 toast.setGravity(Gravity.CENTER, x, y); 96 toast.show(); 97 } 98 99 @Override 100 public void NFCDataReceived(KDCData kdcData) { 101 Log.d(TAG, "NFCDataReceived:" + kdcData.GetDataBytesLength()); 102 String data = kdcData.GetNFCUIDReversed(); 103 104 if (data != null) { 105 data = data + " " + kdcData.GetNFCData() + " "; 106 } else { 107 data = kdcData.GetNFCData() + " "; 108 } 109 110 data += kdcData.GetNFCTagType().GetName(); 111 112 runOnUiThread(new addMsgRunnable(data)); 113 } 114 115 /** 116 * Custom Runnable 117 */ 118 private class addMsgRunnable implements Runnable { 119 private String message; 120 121 addMsgRunnable(String message) { 122 this.message = message; 123 } 124 125 @Override 126 public void run() { 127 if (message != null) { 128 customAdapter.add(message + "\n"); 129 customAdapter.notifyDataSetChanged(); 130 } 131 } 132 } 133}
Stockfile
1[3400E28011700000020ECE638A93 RFID 2, 3400E28011700000020ECE63839A RFID 3, 3400E28011700000020ECE638A93 RFID 4]
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。