从C#文件中读取所有行,然后打印它们

时间:2018-06-29 15:14:30

标签: c#

我正在尝试学习c#,并且有一项任务要尝试学习。此任务的一部分是读取csv文件,以便稍后处理数据。

下面我需要读取文件并打印到控制台进行测试的代码

string[] lines = File.ReadAllLines(@"file path here");
foreach (string line in lines)
{
    Console.WriteLine(line);
    //results.Add(line);
}

,csv上的内容如下:

CustomerId,Forename,Surname,DateOfBirth,VehicleId,RegistrationNumber,Manufacturer,Model,EngineSize,RegistationDate,InteriorColour,HasHelmetStorage,VehicleType
1,Joe,Bloggs,1983-04-08,1,BJ07 YUK,Renault,Clio,1290,2007-02-28,Cream,,Car
1,Joe,Bloggs,1983-04-08,7,BJ12 UUY,Renault,Twingo,1190,2012-03-12,Grey,,Car
2,Jane,Doe,1979-09-04,2,BT58 OKJ,Ford,Fiesta,1187,2008-10-03,Black,,Car
3,Bob,Smith,1992-10-27,3,BJ53 WYR,Peugeot,108,987,2003-07-03,Grey,,Car
4,Kate,Jones,1990-12-09,4,BT12 UJJ,Renault,Clio,1190,2012-05-03,Grey,,Car
5,Ann,Banks,1987-03-10,5,BJ16 OIU,Citroen,C3,1298,2016-02-20,Black,,Car
6,Jeff,Hope,1963-01-19,6,BT15 PLM,Renault,Megane,1380,2015-04-04,Cream,,Car
6,Jeff,Hope,1963-01-19,7,BJ55 PPP,Harley-Davidson,Street 750,750,2015-10-10,,No,Motorcycle
7,Steven,Beck,1980-06-07,,,,,,,,,

我的问题是没有任何内容打印到控制台。该应用程序运行,然后立即关闭,而我尝试使用StreamReader读取行,但是在使用while循环时,只会一遍又一遍地打印第一行。

所以我的问题是如何获取它以打印此csv的内容,以便随后可以继续按需要的方式操作数据?

1 个答案:

答案 0 :(得分:0)

我假设您是直接从Visual Studio运行程序。在这种情况下,这是正确的行为。

应用程序将立即关闭,因为一旦循环运行完成,程序将退出,因此控制台窗口将关闭。

您可以在循环下面添加@Service public class UserDetailsImp implements UserDetailsService { @Autowired UserRepository userRepository; @Override public UserDetails loadUserByUsername(String email) throws UsernameNotFoundException { User user = userRepository.getOneByEmail(email); UserBuilder builder = null; if( user != null){ builder.username(user.getEmail()).password(user.getPassword()).roles(String.join("",user.getRoles())); } else { throw new UsernameNotFoundException("User not found"); } return builder.build(); } } ,这样程序在循环运行后将等待您的输入,因此您可以在控制台中查看该程序的输出。