In delay and disruption tolerant networks, the contacts among nodes are intermittent. Because of the importance of data access, providing efficient data access is the ultimate aim of analyzing and exploiting disruption tolerant networks. Caching is widely proved to be able to improve data access performance. In this paper, we consider caching schemes for broadcasting and multicasting to improve the performance of data access. First, we propose a caching algorithm for broadcasting, which selects the community central nodes as relays from both network structure perspective and social network perspective. Then, we accommodate the caching algorithm for multicasting by considering the data query pattern. Extensive trace-driven simulations are conducted to investigate the essential difference between the caching algorithms for broadcasting and multicasting and evaluate the performance of these algorithms. It has been widely proved that caching is a promising way to improve the performance of data access [9,10]. We can store certain data at some nodes to respond to the query. There have been some studies focusing on caching algorithms for web-based wired networks [11] and wireless ad hoc networks [10,[12][13][14]. Because of the lack of persistent network connectivity, these caching algorithms cannot be applied in DTNs directly [9]. In [15], Gao et al. proposed the caching algorithms for DTNs; however, they did not consider the difference between the caching algorithm for broadcasting and the caching algorithm for multicasting.