unity3D 初学项目报错IOException: Win32 IO returned 234我的解决方案

最近学习unity3d,unity提供了很多教学例子,并且有配套的教学指示。之前我有下载学习这个页面中的例子工程学习,一切正常。

因为之前默认是vs2010打开C#脚本,我电脑中还装有VS2019,所以我卸载了vs2010,在这之后项目还是正常运行。可是有一次我翻看文件目录发现VS2010还残留了一个5G的文件夹,我想都没想就删除了,之后我再通过以下这个页面打开完整项目就会报错如下:

 错误的详细信息:

IOException: Win32 IO returned 234. Path: C:\Users\77433\AppData\Local\Temp\7dcd9938d852126429ab58bbfbc2d240\Library\PackageCache\com.unity.learn.iet-framework@0.2.1-preview.1\Framework\Interactive Tutorials\Editor\Internal Proxy\UnityEditor.InteractiveTutorialsFramework.asmdef
System.IO.FileStream.get_Length () (at <e1319b7195c343e79b385cd3aa43f5dc>:0)
System.IO.FileStream..ctor (System.
### Java 实现随机点名程序 #### 方法一:使用数组存储名字并随机选取 通过创建一个包含学生姓名的字符串数组,可以利用 `Random` 类生成一个介于 0 和数组长度之间的随机索引来选择一名学生。 ```java import java.util.Random; public class RandomNamePicker { public static void main(String[] args) { // 创建一个包含学生姓名的字符串数组 String[] names = {"张三", "李四", "王五", "赵六", "孙七"}; // 创建一个Random对象 Random random = new Random(); // 生成一个随机数,范围在0到数组长度之间 int randomIndex = random.nextInt(names.length); // 使用随机数作为索引从数组中获取对应的学生姓名 String selectedName = names[randomIndex]; // 输出被选中的学生姓名 System.out.println("随机点名结果:" + selectedName); } } ``` 这种方法简单明了,适合初学者理解和实践[^1]。 #### 方法二:使用 `ArrayList` 存储名字列表并调用 `Collections.shuffle()` 打乱顺序再取第一个元素 此方式更加灵活,允许动态增删名单上的成员,并且可以通过打乱整个集合的方式来挑选下一个发言者。 ```java import java.util.ArrayList; import java.util.Collections; public class NameShuffler { public static void main(String[] args){ ArrayList<String> list = new ArrayList<>(); Collections.addAll(list, "范县", "凡间", "饭桶", "du", "d", "so", "hou", "name1", "na2", "na3"); // Shuffle the list to ensure randomness Collections.shuffle(list); // Pick and display a student from shuffled list if (!list.isEmpty()) { String chosenOne = list.get(0); System.out.println(chosenOne); } else { System.out.println("No students available."); } } } ``` 这段代码展示了另一种实现思路——先将所有可能的选择放入列表中,接着对其进行洗牌操作以增加公平性和不可预测性[^3]. #### 方法三:读取外部文件中的学生信息进行随机抽取 对于更复杂的应用场景来说,直接硬编码的名字列表显然不够实用;此时可以从文本文件或其他数据源加载学生的记录。下面的例子演示了如何定义一个名为 `RollCall` 的类来处理这种情况: ```java import java.io.BufferedReader; import java.io.FileReader; import java.io.IOException; import java.util.List; import java.util.Random; import java.util.stream.Collectors; class RollCall { private List<String> students; /** * Reads all lines of given file into memory as a collection of strings. */ public void readStudentsFromFile(String filePath) throws IOException { try (BufferedReader br = new BufferedReader(new FileReader(filePath))) { this.students = br.lines().collect(Collectors.toList()); } } /** * Returns one randomly picked student's name or null when no more students are present. */ public String getRandomStudent() { if (students == null || students.isEmpty()) return null; Random rand = new Random(); int idx = rand.nextInt(students.size()); return students.remove(idx); // Remove returned value so it won't be called again next time } } // Usage example within another method... public class MainApp { public static void main(String[] args)throws Exception{ RollCall rc = new RollCall(); rc.readStudentsFromFile("./path/to/students.txt"); while(true){ String s = rc.getRandomStudent(); if(s==null) break; System.out.println(s); } } } ``` 上述例子不仅实现了基本功能,还考虑到了实际应用环境下的灵活性需求,比如支持批量导入学员名单以及防止重复抽样等问题[^2].
评论 8
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值