亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

PrintWriter 在文件中打印“line.separator”兩次

PrintWriter 在文件中打印“line.separator”兩次

當年話下 2023-07-28 15:18:31
我有一個名為的方法saveAgendaDataArrayList(),該方法應該將 ArrayList 中的數據保存在 TXT 文件中,如下所示。public void saveAgendaDataArrayList(String path, ArrayList<Contact> agendaDataArrayList) {        try {            if(agendaDataArrayList!=null) {                File file = new File(path);                PrintWriter p = new PrintWriter(file);                int count = agendaDataArrayList.size();                for(int i=0; i<count; i++) {                    Contact temp = new Contact();                    temp = agendaDataArrayList.get(i);                    p.println(temp.getIdAdress()+";"+temp.getContactType()+";"+temp.getName()+";"+temp.getBirthdayDay()+                            ";"+temp.getBirthdayMonth()+";"+temp.getBirthdayYear()+";"+temp.getTel1()+";"+temp.getTel2()+                            ";"+temp.getNeigborhood()+";"+temp.getAddress()+";"+temp.getCep()+";"+temp.getEmail()                            +";"+temp.getOtherInformation()+";"+temp.getCreationDate()+";");                }                p.close();            } else {                File file = new File(path);                PrintWriter p = new PrintWriter(file);                p.print("empty agenda");                p.close();            }        } catch (IOException e) {            e.printStackTrace();        }然而,當它運行時,我有一些新的線路來自我不知道從哪里來。往下看。1;1;Guilhermee;00;00;;8666666;;sem bairro;;;;;12-09-2019 04:45:47;2;1;Gabriella;00;00;;;;Morada do Sol;;;;;12-09-2019 04:45:57;3;1;joao;00;00;;;;sem bairro;;;;;12-09-2019 05:38:13;4;1;lua;00;00;;;;sem bairro;;;;;12-09-2019 06:11:15;5;1;roberto;00;00;;;;sem bairro;;;;;12-09-2019 06:12:22;6;1;joquina;00;00;;;;Monte Verde;;;;;12-09-2019 07:38:30;7;1;luan silva;00;00;;;;sem bairro;;;;;12-09-2019 07:40:07;我想要一個如上所述的輸出文件,但沒有空行。我嘗試使用方法查看控制臺中是否會發生同樣的情況System.out.println(),并且它也發生在那里。在文本文件編輯器(記事本)中查看時,我注意到行尾有一些 LF 與 CR LF 混合在一起。我回顧了Contact課程,一切似乎都是正確的。那么,我該怎么做才能達到該結果并避免那些空行,以及為什么只有最后一行位于正確的位置?感謝您的時間。
查看完整描述

1 回答

?
三國紛爭

TA貢獻1804條經驗 獲得超7個贊

將具有 id 地址的條目的第一個方法輸出12與前面有換行符的其他條目進行比較。


可能有些數據是在 Windows 上插入的(因此需要 CR LF 空白),有些數據是在 unix 系統上插入的(僅使用 LF)。不管怎樣,看起來數據本身包含新的線標記,可以PrinterWriter按照你想要的方式工作。一個小測試:


import java.util.ArrayList;

import java.io.*;


public class Main {


    public static void main(String[] args) {

        System.out.println("Hello");  


        ArrayList<Contact> list = new ArrayList<>();

        list.add(new Contact());

        list.add(new Contact());

        list.add(new Contact());

        list.add(new Contact());

        list.add(new Contact());


        try {

                File file = new File("output.txt");

                PrintWriter p = new PrintWriter(file);


                int count = list.size();


                for (int i = 0; i < count; i++) {

                    Contact temp = list.get(i);

                    p.println(temp.getFavColour() + ";" + temp.getSurname() + ";" + temp.getName() + ";");

                }

                p.close();



        } catch (IOException e) {

            e.printStackTrace();

        }

    }


    public static class Contact {

        public String getName() {

            return "John";

        }


        public String getSurname() {

            return "Black";

        }


        public String getFavColour() {

            return "red";

        }

    }

}


查看完整回答
反對 回復 2023-07-28
  • 1 回答
  • 0 關注
  • 118 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號