我正在尝试学习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的内容,以便随后可以继续按需要的方式操作数据?
答案 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();
}
}
,这样程序在循环运行后将等待您的输入,因此您可以在控制台中查看该程序的输出。